如何在有多个条件时从表中删除值?

时间:2012-10-14 04:38:28

标签: sql oledb sql-delete oledbcommand

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

它给了我这样的信息:没有给出一个或多个必需参数的值。 知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

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

更长的答案是不要这样做!您将代码打开到SQL Injection attacks。将参数化查询改为shown in this reference