首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法用数据填充OleDbDataAdapter

无法用数据填充OleDbDataAdapter
EN

Stack Overflow用户
提问于 2011-03-12 13:30:33
回答 2查看 1.8K关注 0票数 1

我无法在OleDbDataAdapter中填写数据

我得到一个带有以下消息的OleDbException ( Syntax error in FROM clause. )

在这一行adapter.Fill(dataset, "User")

这是代码

代码语言:javascript
复制
Imports System.Data.OleDb

Public Class Form1

Public connection As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\MyDatabase.mdb;Persist Security Info=False")

Private Sub button_display_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button_display.Click
    connection.Close()
    connection.Open()
    Dim adapter As New OleDbDataAdapter
    adapter.SelectCommand = New OleDbCommand
    adapter.SelectCommand.Connection = connection
    adapter.SelectCommand.CommandText = "select * from user;"

    Dim dataset As New DataSet
    adapter.Fill(dataset, "User")
    connection.Close()
    Dim datarow = dataset.Tables("User").Rows(0)
    Dim fname, lname As String
    fname = datarow(0)
    lname = datarow(1)
    txtfirstname.Text = fname
    txtlastname.Text = lname

End Sub
End Class

我试过替换

代码语言:javascript
复制
    Dim adapter As New OleDbDataAdapter
    adapter.SelectCommand = New OleDbCommand
    adapter.SelectCommand.Connection = connection
    adapter.SelectCommand.CommandText = "select * from user;"

    Dim dataset As New DataSet
    adapter.Fill(dataset, "User")

使用

代码语言:javascript
复制
    Dim adapter As New OleDbDataAdapter("select * from user;", connection)
    Dim dataset As New DataSet
    adapter.Fill(dataset, "User")

我也试过

代码语言:javascript
复制
    Dim adapter As New OleDbDataAdapter
    adapter.SelectCommand = New OleDbCommand("select * from user;", connection)
    Dim dataset As New DataSet
    adapter.Fill(dataset)

但我得到了同样的例外Syntax error in FROM clause

EN

回答 2

Stack Overflow用户

发布于 2011-03-12 14:29:20

用户是一个保留字。它应该是这样写的:

代码语言:javascript
复制
"select * from [user];"

注意方括号。最好通过重命名表来完全避免保留词。

票数 6
EN

Stack Overflow用户

发布于 2011-03-12 13:54:33

我不确定adapter.SelectCommand = New OleDbCommand是正确的(我不做太多的VB,所以我可能错了),在任何情况下,您为什么要关闭连接,然后打开它,然后不关闭它?把你的距离移到尽头。

试着做这样的事情:

代码语言:javascript
复制
Dim conn As New OleDbConnection(connection)
Dim adapter As New OleDbDataAdapter()
conn.Open()
adapter.SelectCommand = new OleDbCommand("Select * From User", conn)
DataSet dataset As New DataSet
adapter.Fill(dataset)
conn.Close()

剩下的代码

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5282776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档