我正在尝试删除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 !");
}
}
}
它给了我这样的信息:没有给出一个或多个必需参数的值。 知道如何解决这个问题吗?
答案 0 :(得分:1)
简短的回答可能是你的字符串中的AND之前需要一个空格。看起来您假设将在每个文本框中输入数字,但您没有强制执行,因此可能会出现不同的错误,具体取决于这些文本框的内容。
更长的答案是不要这样做!您将代码打开到SQL Injection attacks。将参数化查询改为shown in this reference。