错误讯息:
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”,数据将显示第一个字符中的第一个字符。
答案 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();