Frage

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

Ich habe diesen Code und ich bekomme diese Fehlermeldung, wenn ich die Fill (DistinctInvoice) aufrufen

muss die skalare Variable deklarieren "@value"

Mein FillInvoiceList () Methode wird von einem SelectedIndexChanged Ereignisse aus der DropDownList1 genannt. Der Wert von DropDownList1.SelectedItem.Text scheint korrekt zu sein.

Vielen Dank für jede Hilfe.

War es hilfreich?

Lösung

Der Fehler ist hier:

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

Sie die Einstellung der SQLDataAdapter die ursprüngliche Command zu verwenden, nicht den SQLCommand selbst. Ändern Sie es an:

SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(cmd, conn.ConnectionString);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top