0

我正在尝试从 Table 中删除 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 !");
            }
        }
        }

它给了我这个消息:没有为一个或多个必需参数提供值。 知道如何解决这个问题吗?

4

1 回答 1

1

简短的回答可能是您在字符串中的 AND 之前需要一个空格。看起来您假设将在每个文本框中输入数字,但您没有强制执行,因此根据这些文本框的内容可能会出现不同的错误。

更长的答案是不要这样做!您正在向SQL 注入攻击开放您的代码。请改用参数化查询,如本参考中所示

于 2012-10-14T04:46:31.080 回答