【问题标题】:Trying to populate listbox in VB.NET from Access database试图从 Access 数据库中填充 VB.NET 中的列表框
【发布时间】:2015-11-26 10:36:02
【问题描述】:

我在线路上遇到错误

reader = command.executereader()

错误:

“System.Data.OleDb.OleDbException”类型的未处理异常 发生在 System.Data.dll

附加信息:无效的 SQL 语句;预期为“DELETE”、“INSERT”、“PROCEDURE”、“SELECT”或“UPDATE”。

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click


    connection.Open()

    'It comes here after opening the connection

    Dim command As New OleDb.OleDbCommand("Requestor Name", connection)


    Dim reader As OleDb.OleDbDataReader

    reader = command.ExecuteReader()

    Do While (reader.Read())

        QUERBOX.Items.Add(reader.GetInt32(0))

    Loop

    reader.Close()

    connection.Close()
End Sub

【问题讨论】:

  • 它清楚地说明了您的查询错误的错误消息。调试那个..
  • 它突出显示了 reader = command.executereader 所以我认为是这样。我会看看查询,谢谢。

标签: vb.net ms-access listbox


【解决方案1】:

The constructor for OleDbCommand 需要一个 SQL 查询。这不是有效的 SQL 代码:

Requestor Name

这只是您在该字符串中键入的文本。当你对它说随机的话时,数据库不会知道你的意思。与任何其他计算机系统一样,它需要有效代码才能执行。

类似这样的东西,例如:

SELECT Name FROM Requestors

(这完全是为了演示语法的猜测,我不知道您的数据库是如何构建的,也不知道您试图从中获取什么数据。)

【讨论】:

  • 知道了。基本上我试图从数据库中拉一整行到列表框中。最终我将扩展代码以从文本框中提取查询字段,但现在我只想让它发挥作用。
【解决方案2】:

这里

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click


connection.Open()

'Requestor Name is the real error

Dim command As New OleDb.OleDbCommand("SELECT [COLUMNAME] FROM [TABLENAME]", connection)


Dim reader As OleDb.OleDbDataReader

reader = command.ExecuteReader()

Do While (reader.Read())

    QUERBOX.Items.Add(reader.GetInt32(0))

Loop

reader.Close()

connection.Close()
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-27
    • 1970-01-01
    • 2013-06-21
    • 1970-01-01
    • 2016-06-18
    相关资源
    最近更新 更多