附加信息:关键字'like'附近的语法不正确

时间:2015-04-10 10:26:31

标签: c#

错误讯息:

Additional information: Incorrect syntax near the keyword 'like'.

我缺少什么?

con = new SqlConnection(MyConnectionString);
con.Open();

SqlDataReader dr = null;
string sql = "select * from " + DropDownList1.SelectedValue + "where SUPP_NAME like ' " + TextBox1.Text + "%' ";
cmd = new SqlCommand(sql, con);
dr = cmd.ExecuteReader();
GridView1.DataSource = dr;
GridView1.DataBind();
dr.Close();
dr = null;

如果输入“A”,数据将显示第一个字符中的第一个字符。

3 个答案:

答案 0 :(得分:1)

WHERE之前没有空格,您需要引用DropDownList1.SelectedValue,除非它始终是一个数字。使用这样的方法来引用它:

string SqlQuote(object o)
{
    if (o == null) return "null";
    return "'" + o.ToString().Replace("'", "''") + "'";
}

但实际上,您应该使用参数化查询来避免引用,间距等所有这些问题。

答案 1 :(得分:0)

sql命令没有关联的连接。在调用cmd.ExecuteReader();

之前设置cmd.Connection = con;

答案 2 :(得分:-1)

你可以试试这个。

 con = new SqlConnection(MyConnectionString);
            con.Open();
            SqlDataReader myReader = null;
            SqlCommand myCommand= new SqlCommand("select * from ' " + DropDownList1.SelectedValue.ToString() + " ' where SUPP_NAME like ' " + TextBox1.Text + "%' ");

            myReader = myCommand.ExecuteReader();

            GridView1.DataSource = dr;
            GridView1.DataBind();
            con.Close();