【发布时间】:2019-11-12 22:27:06
【问题描述】:
我在另一个TextBox 中插入一个值后尝试填充ComboBox。它不断返回:
System.Data.SqlClient.SqlException: '',' 附近的语法不正确。'
public void carrega_status()
{
string sql2 = "select * from tb02_alarme WHERE tb02_desc =" + txtdescala + " ;";
SqlConnection conn1 = Conexao.ObterConexao();
SqlDataAdapter da2 = new SqlDataAdapter(sql2, conn1);
DataTable resultado = new DataTable();
resultado.Clear();
txtstatus.DataSource = null;
da2.Fill(resultado);
txtstatus.DataSource = resultado;
txtstatus.ValueMember = "tb02_class";
txtstatus.DisplayMember = "tb02_class";
txtstatus.SelectedItem = "";
txtstatus.Refresh();
}
错误出现在da2.Fill(resultado);。
【问题讨论】:
-
sql2的结果是什么样的? (引用?) -
改用参数。
-
@shar 您可能缺少字符串值所需的单引号:
string sql2 = "select * from tb02_alarme WHERE tb02_desc =" + txtdescala + " ;";尝试更改为:string sql2 = "select * from tb02_alarme WHERE tb02_desc = '" + txtdescala + "' ;"; -
您的问题是一个警告信号,应该非常认真地对待。如果您无法控制
txtdescala的内容是什么,那么您将面临SQL 注入攻击。有人可能会插入可以删除您的表或数据库或其他危险事物的语句。答:使用参数。 -
好吧,“a”不是有效的 sql - 我对它的抱怨并不感到惊讶,但这与您显示的错误不匹配