1

このクラスでは、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" />
4

0 に答える 0