Erreur SQL doit déclarer la variable scalaire
-
19-09-2019 - |
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.
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