Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.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
Sql 填充DataAdapter时无法识别的数据库格式_Sql_Database_Vb.net_Ms Access - Fatal编程技术网

Sql 填充DataAdapter时无法识别的数据库格式

Sql 填充DataAdapter时无法识别的数据库格式,sql,database,vb.net,ms-access,Sql,Database,Vb.net,Ms Access,我正在尝试使用列表框对数据进行分类,并尝试使用SQL进行分类 这个链接就是表单看起来的样子,我知道,我也在尝试做——使用列表框按学生年份查看记录 对于第一个列表框,这里是第一个列表框的代码,用于按年份对数据进行排序: Imports System.Data.OleDb Public Class viewStudent Private Sub viewStudent_Load(ByVal sender As System.Object, ByVal e As System.EventArgs

我正在尝试使用列表框对数据进行分类,并尝试使用SQL进行分类

这个链接就是表单看起来的样子,我知道,我也在尝试做——使用列表框按学生年份查看记录

对于第一个列表框,这里是第一个列表框的代码,用于按年份对数据进行排序:

Imports System.Data.OleDb

Public Class viewStudent

Private Sub viewStudent_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    'TODO: This line of code loads data into the 'ProjDataSet1.Details' table. You can move, or remove it, as needed.
    Me.DetailsTableAdapter1.Fill(Me.ProjDataSet1.Details)
    ' OleDbDataAdapter1.Fill(DataSet11)
End Sub

Private Sub lstYear_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lstYear.SelectedIndexChanged
    Dim Year, SQLString As String
    Dim dtDetails As New DataTable()
    Dim dbDataAdapter As OleDbDataAdapter
    Dim ConnectString As String = "Provider = Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source = proj.accdb"
    Year = lstYear.Text
    SQLString = "SELECT * FROM Details WHERE Year = " & "'" _
        & Year & "'" & ""
    dbDataAdapter = New OleDbDataAdapter(SQLString, ConnectString)
    dbDataAdapter.Fill(dtDetails)
    grdRecords.DataSource = dtDetails
End Sub
End Class
但我在下面的链接中发现了错误:

有人能帮我修一下吗? 谢谢大家!

Microsoft.Jet.OLEDB.4.0提供程序是较旧的32位提供程序,只能处理.mdb数据库文件。要使用.accdb数据库,您需要使用更新的“Microsoft.ACE.OLEDB.12.0”提供程序

由于已安装64位版本的Access 2013,因此已安装64位版本的ACE提供程序。你需要做的就是

  • 修改.NET项目的属性以作为64位应用程序运行(参考:),以及


  • 将代码中的连接字符串更改为使用
    Provider=Microsoft.ACE.OLEDB.12.0


  • 我会用一个组合而不是列表框,然后用一个数据视图来应用一个过滤器(而不是重新查询数据库),谢谢你现在就来试试什么版本的Access?我认为ACE/12.0更合适
    Provider=Microsoft.ACE.OLEDB.12.0…
    另请参见,完成后应处理这些DB Provider对象。2013年:我可以访问2013年,它说供应商是oledb4.0