0

index=Textbox1.Text および idnmb=Textbox2.Text のテーブルからすべてのデータを削除しようとしています。この部分 + "AND id_nmb = " + data2を削除すると機能しますが、必要なものではありません。

私はこのコードを持っています:

private void button1_Click(object sender, RoutedEventArgs e)
        {
            var data1 = this.textBox1.Text;
            var data2 = this.textBox2.Text;


            OleDbCommand cmd = new OleDbCommand("DELETE FROM Table WHERE index = " + data1 + "AND idnmb = " + data2 , con);

            cmd.Connection = con;

            int temp = cmd.ExecuteNonQuery();

            if (temp > 0)
            {
                MessageBox.Show("OK !");
            }
            else
            {
                MessageBox.Show("Some error !");
            }
        }
        }

次のメッセージが表示されます: 1 つ以上の必須パラメーターに値が指定されていません。 これを解決する方法はありますか?

4

1 に答える 1

1

簡単に言うと、文字列のANDの前にスペースが必要になる可能性があります。各テキストボックスに数字が入力されると想定しているように見えますが、強制しないため、これらのテキストボックスの内容によっては異なるエラーが発生する可能性があります。

長い答えは、このようにしないでください!コードをSQLインジェクション攻撃に開放しています。このリファレンスに示されているように、代わりにパラメータ化されたクエリを使用してください。

于 2012-10-14T04:46:31.080 に答える