2016-01-07 2 views
2

Я пытаюсь добавить данные на два поля в моей форме VB от сервера SQL с этими значениями столбца book_name & member_id через два textboxes и search button, используя следующий код:Колонка «book_name» не принадлежит к столу

Dim B_Name As String = txtSearchBookNamenew.Text 
Dim M_ID As Decimal = txtSearchIDnew.Text 
da = New SqlDataAdapter("SELECT b.book_name, m.member_id FROM book b JOIN member m ON b.staff_id = m.staff_id Where member_id =" & M_ID & "AND book_name =" & "'" & B_Name & "'", cn) 
       dt = New DataTable 
       da.Fill(dt) 
       If dt.Rows.Count > 0 Then 
        cboIDSave.Text = dt.Rows(0).Item("member_id") 
        cboISBNsave.Text = dt.Rows(0).Item("book_name") 
        end if 

Но я получаю эту ошибку: "Column 'book_name' does not belong to table"

Что может быть причиной этой ошибки?

+5

Используйте параметры SQL. Если имя книги - «Квест Хоббит», ваш запрос выйдет из строя. Они также упростят чтение кода/запроса. Также включите опцию Strict – Plutonix

+0

на всякий случай, если вы не пришли к ней, похоже, что столбец «book_name» не выходит в таблицу «книга». По крайней мере, на сервере, к которому вы подключены. Возможно, это опечатка, и ваша колонка «имя» или «bookName» – SysDragon

+0

@Plutonix, как включить опцию strict? – Hazmat

ответ

0

После много головной боли, я только что узнал, что я только заполнение полей в неправильном порядке, я выбрал "book_name" первый в моей SQL запросе, но когда я заполнял поля (ComboBoxes ->cboIDSave & cboISBNsave) Я заполнял сначала поле Идентификатор, а затем поле book_name, но я должен сначала заполнить поле book_name, а затем поле ID. Так вот что я сделал, и теперь код работает отлично :)

резюмировать просто изменить:

cboIDSave.Text = dt.Rows(0).Item("member_id") 
cboISBNsave.Text = dt.Rows(0).Item("book_name") 

к этому:

cboISBNsave.Text = dt.Rows(0).Item("book_name") 
cboIDSave.Text = dt.Rows(0).Item("member_id") 
Смежные вопросы