为什么会这样?我桌上的这个专栏名称还可以,请问我一个想法吗?
SqlCommand cmd = new SqlCommand ("select Emri from Drsignup WHERE Departamenti=" + DropDownList3.SelectedItem.Value + " ", cn);
SqlDataAdapter dt = new SqlDataAdapter(cmd);
DataSet det = new DataSet();
dt.Fill(det);
DropDownList4.DataSource = det;
DropDownList4.DataTextField = "Emri";
DropDownList4.DataBind();
答案 0 :(得分:3)
您在SQL查询中使用字符串值而不将其括在引号中:
select Emri from Drsignup WHERE Departamenti=Pediatri
因此,SQL引擎认为Pediatri
是指数据库对象(在本例中是一列)。
你可以用引号包装它,但这只能暂时解决问题的这一个症状。问题本身就是您将查询的输入连接为代码而不是将其视为值。而是使用值的参数:
SqlCommand cmd = new SqlCommand ("select Emri from Drsignup WHERE Departamenti = @Departamenti", cn);
cmd.Parameters.AddWithValue("@Departamenti", DropDownList3.SelectedItem.Value);