Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 当有多个条件时,如何从表中删除值?_Sql_Oledb_Sql Delete_Oledbcommand - Fatal编程技术网

Sql 当有多个条件时,如何从表中删除值?

Sql 当有多个条件时,如何从表中删除值?,sql,oledb,sql-delete,oledbcommand,Sql,Oledb,Sql Delete,Oledbcommand,我正在尝试从index=Textbox1.Text和idnmb=Textbox2.Text的表中删除所有数据 当我删除此部分+”和id_nmb=“+data2时,它可以工作,但不是我想要的 我有以下代码: private void button1_Click(object sender, RoutedEventArgs e) { var data1 = this.textBox1.Text; var data2 = this.tex

我正在尝试从index=Textbox1.Text和idnmb=Textbox2.Text的表中删除所有数据 当我删除此部分+”和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 !");
            }
        }
        }
它给了我这样一条信息:没有为一个或多个必需参数提供值。
你知道如何解决这个问题吗?

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


较长的答案是不要这样做!您正在将代码开放给。使用参数化查询代替。

我在前面加了空格,但它给出了相同的错误,只有data1是数字,data2是文本。我该如何执行呢?如果data2是文本,您需要添加引号:“和idnmb=”“+data2+””“非常感谢,我知道我应该使用参数化查询,但我是初学者,所以这就足够开始了。”