Я пытаюсь выбрать имя клиента на основе выбранного кода из ComboBox
. Когда я запускаю следующий код, я получаю сообщение о том, что нет значения для одного или нескольких требуемых параметров.SQL SELECT запрос не работает с параметрами, но отлично работает с конкатенацией
sql = "SELECT [Customer_Name] FROM [Customers] WHERE [Customer_Code] = @code"
Dim cmd As New OleDb.OleDbCommand(sql, con)
cmd.Parameters.Add("@code", OleDb.OleDbType.VarChar).Value = cmbCustomer.Text
Dim da As New OleDb.OleDbDataAdapter(sql, con)
Dim ds As New DataSet
da.Fill(ds)
txtCustomer.Text = ds.Tables(0).Rows(0).Item("Customer_Name")
Однако, когда я запускаю тот же запрос, но без параметра, он отлично работает.
sql = "SELECT [Customer_Name] FROM [Customers] WHERE [Customer_Code] = '" & cmbCustomer.Text & "'"
Dim cmd As New OleDb.OleDbCommand(sql, con)
Dim da As New OleDb.OleDbDataAdapter(sql, con)
Dim ds As New DataSet
da.Fill(ds)
txtCustomer.Text = ds.Tables(0).Rows(0).Item("Customer_Name")
Есть ли что-то действительно очевидное, что я пропустил первым способом его выполнения? Если нет, то почему этот способ не работает?
Если это будет 'cmd.Parameters.Add ("@ код", cmbCustomer.Text);'? –
Я считаю, что лучше использовать Parameter.AddWithValue вместо – apomene
Где вы пытаетесь запустить этот запрос? напрямую, из формы или отчета? –