jim*_*jim 1 c# sql parameterized-query
private void FillInvoiceList()
{
DataTable distinctInvoice = new DataTable();
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["APOS_CONNECTION_STRING"].ConnectionString))
{
conn.Open();
SqlCommand cmd = new SqlCommand("Select distinct svc_tag from data where rep_name = @value");
cmd.Parameters.AddWithValue("@value", this.DropDownList1.SelectedItem.Text);
SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(cmd.CommandText, conn.ConnectionString);
sqlDataAdapter.Fill(distinctInvoice);
}
foreach (DataRow row in distinctInvoice.Rows)
{
this.ListBox1.Items.Add(row["svc_tag_dim_invoice_num"].ToString());
}
}
Run Code Online (Sandbox Code Playgroud)
我有这个代码,当我调用Fill(DistinctInvoice)时出现此错误
必须声明标量变量"@value"
我的FillInvoiceList()方法是从DropDownList1的SelectedIndexChanged事件中调用的.DropDownList1.SelectedItem.Text的值似乎是正确的.
谢谢你的帮助.
Mar*_*rtW 10
错误在这里:
SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(cmd.CommandText, conn.ConnectionString);
Run Code Online (Sandbox Code Playgroud)
您正在设置SQLDataAdapter以使用原始CommandText,而不是SQLCommand本身.将其更改为:
SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(cmd, conn.ConnectionString);
Run Code Online (Sandbox Code Playgroud)