SQL errore deve dichiarare la variabile scalare
-
19-09-2019 - |
Domanda
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());
}
}
Ho questo codice e ottengo questo errore quando chiamo il riempimento (DistinctInvoice)
Deve dichiarare la scalare "@value" variabile
Il mio FillInvoiceList () Metodo viene chiamato da un evento SelectedIndexChanged dal DropDownList1. Il valore di DropDownList1.SelectedItem.Text sembra essere corretta.
Grazie per qualsiasi aiuto.
Soluzione
L'errore è qui:
SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(cmd.CommandText, conn.ConnectionString);
Si sta impostando lo SQLDataAdapter di utilizzare il CommandText originale, non lo SQLCommand stesso. Cambiarlo in:
SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(cmd, conn.ConnectionString);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow