1

这是用于进行搜索的代码

 private void button1_Click(object sender, EventArgs e)
    {
        string connectionString = Tyre.Properties.Settings.Default.Database1ConnectionString;
        SqlConnection conn = new SqlConnection(connectionString);
        DataTable dt = new DataTable();
        SqlDataAdapter SDA = new SqlDataAdapter("SELECT * FROM table1 where Nom like " + textBox1.Text, conn);
        SDA.Fill(dt);
        dataGridView1.DataSource = dt;
    }

我得到这个错误

System.Data.dll 中出现“System.Data.SqlClient.SqlException”类型的未处理异常

附加信息:列名“elie”无效。

那是我的应用程序的一个例子: 在此处输入图像描述 单击此处查看图像

4

1 回答 1

4

首先,您的代码对SQL Injection是开放的。您允许用户插入他想要的任何数据,包括

; 删除表表 1

要解决与单引号和 % 符号匹配的项目周围的直接问题:

"SELECT * FROM table1 where Nom like '%" + textBox1.Text + "%'"

但是,您绝对应该考虑使用参数化查询

于 2013-02-04T20:46:13.220 回答