1
        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 の値は正しいようです。

助けてくれてありがとう。

4

1 に答える 1

10

エラーはここにあります:

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

SQLCommand 自体ではなく、元の CommandText を使用するように SQLDataAdapter を設定しています。次のように変更します。

SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(cmd, conn.ConnectionString);
于 2009-12-14T13:18:19.020 に答える