Member 11856456 Ответов: 1

Выберите оператор where


Я пытаюсь получить конкретные данные, чтобы они отображались в gridview. Я пытаюсь использовать оператор select where, но он не возвращает никаких данных.

'заполнить похоронное бюро выпадающих списка, в котором отображаются данные в комбобокс через SQL-соединение
        Dim funcon As New SqlConnection("sqlconstring")


        Dim sqladapt As New SqlDataAdapter

        funcon.Open()

        Dim command As SqlCommand = New SqlCommand("Select county from [business] where [state] = @state", funcon)
      command.Parameters.AddWithValue("@State", Businesscombobox.SelectedItem)
        sqladapt.SelectCommand = command
        sqladapt.SelectCommand.ExecuteNonQuery()
        command.CommandTimeout = False
        Dim dts As New DataTable
        Dim dss As New DataSet
        sqladapt.Fill(dts)

        DataGridView1.DataSource = dts
funcon.close


Не знаю, почему я не могу получить данные, чтобы появиться

Что я уже пробовал:

Я попытался изменить способ выделения текста в выпадающем списке. Я даже попытался использовать состояние, которое находится в datatable, чтобы увидеть, что прямое внедрение состояния в оператор приведет к обратной связи с данными и все равно ничего. Если я не использую оператор where, он выводит все мои данные, где я ошибаюсь?

1 Ответов

Рейтинг:
2

Dave Kreskowiak

Во-первых, "@государство" не тождественно "@государство".

Далее, Businesscombobox.SelectedItem не возвращает то, что вы думаете. Он собирается позвонить .ToString на что угодно, что выбранный элемент является, а что не может возвращать строку, которую вы хотите.

Сделайте себе одолжение и переместите Businesscombobox.SelectedItem в свою собственную переменную и проверяет содержимое в отладчике.

Dim selected As String = Businesscombobox.SelectedItem
command.Parameters.AddWithValue...

Поставьте точку останова в строке AddWithValue и запустите код. Когда отладчик остановится на этой строке, вы можете навести курсор мыши на нее. selected чтобы увидеть содержимое, которое вы передаете объекту Parameter.


0x01AA

Согласно MSDN: "имена параметров не чувствительны к регистру". Во всяком случае, хороший совет использовать одно и то же значение, чтобы избежать путаницы.

Dave Kreskowiak

Да, скорее "эмпирическое правило", которое будет использоваться везде, а не только параметры.