【问题标题】:The multi-part identifier "System.Data.DataRowView" could not be bound." SQL SERVER + VB.NET无法绑定多部分标识符“System.Data.DataRowView”。” SQL SERVER + VB.NET
【发布时间】:2013-06-23 20:05:25
【问题描述】:

我正在使用 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

【问题讨论】:

  • 验证colNames.SelectedValue.ToString 等于什么。我相信它会产生System.Data.DataRowView
  • filteredRecords 是一个数据网格还是别的什么?

标签: sql-server vb.net datagridview combobox adp


【解决方案1】:

你的错误在这一行:

adp.Fill(ds, query)

您可以很好地填充数据集。但是,.Fill() 的第二个参数应该是数据表的名称。您正在尝试使用 Query 作为表名,但它太长且太复杂。使用这样的东西会更好:

adp.Fill(ds, "Books")

【讨论】:

  • 嗨,干杯 tgolisch,我以前曾尝试过您的建议,但仍然遇到同样的错误
猜你喜欢
  • 2013-06-26
  • 1970-01-01
  • 1970-01-01
  • 2022-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多