Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从VB.NET从MSAccess数据库检索数据_Vb.net_Ms Access - Fatal编程技术网

从VB.NET从MSAccess数据库检索数据

从VB.NET从MSAccess数据库检索数据,vb.net,ms-access,Vb.net,Ms Access,我想从数据库中检索数据。我使用MSAccess作为数据库。我在这里面临的问题是,我无法通过vb.net从MSAccess获取数据 查找下面我正在使用的代码段 Imports System.Data.OleDb Public Class Form1 Dim cn As OleDb.OleDbConnection Dim ds As DataSet Dim da As OleDbDataAdapter Dim tables As DataTableCollection

我想从数据库中检索数据。我使用MSAccess作为数据库。我在这里面临的问题是,我无法通过vb.net从MSAccess获取数据

查找下面我正在使用的代码段

Imports System.Data.OleDb
Public Class Form1
    Dim cn As OleDb.OleDbConnection
    Dim ds As DataSet
    Dim da As OleDbDataAdapter
    Dim tables As DataTableCollection
    Dim source1 As New BindingSource
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim connectionString As String

        connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
                                "Data Source=C:\myfolder\fdfd.accdb;"

        cn = New OleDbConnection

        cn.ConnectionString = connectionString


        ds = New DataSet
        tables = ds.Tables
        da = New OleDbDataAdapter("Select * From names", cn)
        da.Fill(ds, "names")


        Dim view As New DataView(tables(0))
        source1.DataSource = view
        DataGridView1.DataSource = view
    End Sub
End Class
第行出现错误:
da.Fill(ds,“名称”)

以下是错误截图:


提前感谢

在填充数据集之前,请尝试打开连接

Imports System.Data.OleDb

Public Class Form1

Dim cn As OleDb.OleDbConnection
Dim ds As DataSet
Dim da As OleDbDataAdapter
Dim tables As DataTableCollection
Dim source1 As New BindingSource

Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load

    cn = New OleDbConnection

    cn.ConnectionString =  "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myfolder\fdfd.accdb; Persist Security Info=False;"

    Try

        ds = New DataSet
        tables = ds.Tables
        cn.Open()
        da = New OleDbDataAdapter("SELECT * FROM [Names]", cn)
        da.Fill(ds, "names")
        cn.Close()
        Dim view As New DataView(tables(0))
        source1.DataSource = view
        DataGridView1.DataSource = view

    Catch ex As Exception
        MsgBox(ex.Message)
    End Try

End Sub
End Class
基于,我提出了以下适用于我的代码:

Imports System.Data.OleDb
Public Class Form1
    Dim cn As OleDb.OleDbConnection
    Dim ds As DataSet
    Dim da As OleDbDataAdapter
    Dim tables As DataTableCollection
    Dim source1 As New BindingSource
    Dim oleCommand As OleDbCommand
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
       cn = New OleDbConnection

        If System.IO.File.Exists("C:\myfolder\fdfd.accdb") Then
            cn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myfolder\fdfd.accdb; Persist Security Info=False;"
        End If
        Try
            Dim SQL As String = "SELECT * from [names]"

            oleCommand = New OleDbCommand(SQL, cn)
            da = New OleDbDataAdapter(oleCommand)
            Dim table = New DataTable("[names]")
            cn.Open()
            da.Fill(table)
            cn.Close()
            Dim view As New DataView(table)
            source1.DataSource = view
            DataGridView1.DataSource = view

        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub
End Class   

我尝试了您建议的一个片段,但出现了相同的错误。是否有其他方法可以从MSAccess访问数据??代码正确。尝试使用
Try/catch
块捕获异常。请参见编辑的代码。可能您的数据库丢失或连接字符串错误。连接字符串正确,但不知道发生此错误的原因,并且数据库也存在。使用
try/catch
block将消除您的疑问。它将在对话框中显示详细的错误消息。IErrorInfo.GetDescription失败,E_失败(0x80004005)。下面是我收到的消息框。