Не удалось связать многокомпонентный идентификатор "System.Data.DataRowView". SQL SERVER + VB.NET

Я делаю небольшую базу данных, используя SQL Server в качестве задней части и VB в качестве внешнего интерфейса, я почти заставил ее работать, однако я наткнулся на эту ошибку:

"Произошло необработанное исключение типа" System.Data.SqlClient.SqlException "в System.Data.dll

Дополнительная информация: Не удалось связать многокомпонентный идентификатор "System.Data.DataRowView".

Мой код приведен ниже, буду очень признателен за помощь

ура

Imports System.Data.SqlClient
Public Class searchDialog

    Private Sub searchDialog_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        'TODO: This line of code loads data into the 'SearchDataSet.Books' table. You can move, or remove it, as needed.
        Me.BooksTableAdapter.Fill(Me.SearchDataSet.Books)

    End Sub

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim ds As New DataSet
        Dim query As String = "select * from Books where " + colNames.SelectedValue.ToString + " LIKE " + "'%" + colValues.Text + "%'"
        BooksTableAdapter.Connection.Open()

        Dim adp As New SqlDataAdapter(query, BooksTableAdapter.Connection.ConnectionString)

        adp.Fill(ds, query)

        BooksTableAdapter.Connection.Close()

        filteredRecords.DataSource = ds
        filteredRecords.DataMember = "Books"
    End Sub
End Class

1 ответ

Ваша ошибка в этой строке:

adp.Fill(ds, query)

Вы хорошо заполняете набор данных. Тем не менее, второй аргумент.Fill() должен быть именем таблицы данных. Вы пытаетесь использовать запрос в качестве имени таблицы, но он слишком длинный и сложный. Вам было бы лучше с чем-то вроде этого:

adp.Fill(ds, "Books")
Другие вопросы по тегам