このクラスでは、SQlインジェクションを防ぐために、SQL挿入をパラメーター化された方法で実行するメソッドを実装しようとしています。結果は、クエリを実行できることを示していますが、添付されたデータベースをクリックしてもデータベースは更新されません。私のプロジェクト 。
では、Ole DBを使用して挿入コマンドを実行するにはどうすればよいですか?これを実装する際の方法論と注意事項はありますか?
以下は私のコードです
private string connectionDBString = ConfigurationManager.ConnectionStrings["TestConnectionString"].ConnectionString.ToString();
...。
public void add_data(string chi_name, string eng_name, string nick_name,
int bd_year, int bd_month, int bd_day, string home_tel, int no_of_child......
.....。
string sql = @"INSERT INTO STUDENT(CHI_NAME,ENG_NAME,NICK_NAME,BD_YYYY,BD_MM,BD_DD,HOME_TEL,NO_OF_CHILD ..)VALUES(@NEW_CHI_NAME,@NEW_ENG_NAME,@NEW_NICK_NAME,@NEW_BD_YYYY......
...。
OleDbCommand cmd = new OleDbCommand(sql, connection);
cmd.CommandType = CommandType.Text;
cmd.Parameters.Add(new OleDbParameter("@NEW_CHI_NAME", chi_name));
cmd.Parameters.Add(new OleDbParameter("@NEW_ENG_NAME", eng_name));
cmd.Parameters.Add(new OleDbParameter("@NEW_NICK_NAME", nick_name));
cmd.Parameters.Add(new OleDbParameter("@NEW_BD_YYYY", bd_year));
cmd.Parameters.Add(new OleDbParameter("@NEW_BD_MM", bd_month));
...。
connection.Open();
int rows = cmd.ExecuteNonQuery();
if (rows > 0)
{
MessageBox.Show("Insert New Client Success!" + " " + rows);
}
connection.Close();
connection.Dispose();
....... app.configで、ConnectionStringが適切に含まれている
<add name="TestConnectionString"
connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\test.accdb;Persist Security Info=True"
providerName="System.Data.OleDb" />