Question

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

J'ai ce code et je reçois cette erreur lorsque j'appelle le remplissage (DistinctInvoice)

Il faut déclarer la "@value" variable scalaire

My FillInvoiceList (), méthode est appelée à partir d'un événement SelectedIndexChanged du DropDownList1. La valeur de DropDownList1.SelectedItem.Text semble être correct.

Merci pour toute aide.

Était-ce utile?

La solution

L'erreur est ici:

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

Vous le réglage de la SQLDataAdapter d'utiliser le CommandText original, pas le SQLCommand lui-même. Changer à:

SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(cmd, conn.ConnectionString);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top