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());
        }
    }

我有这样的代码,当我调用Fill我得到这个错误(DistinctInvoice)

必须声明标量变量 “@value”

我FillInvoiceList()方法正在从一个DropDownList1 SelectedIndexChanged事件调用。 DropDownList1.SelectedItem.Text的价值似乎是正确的。

感谢您的帮助。

有帮助吗?

解决方案

在错误是在这里:

SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(cmd.CommandText, conn.ConnectionString);

您正在设置使用原始的CommandText,而不是本身的SqlCommand的SqlDataAdapter的。它更改为:

SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(cmd, conn.ConnectionString);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top