我正在尝试使用列表框对数据进行分类,我正在尝试使用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
但我在下面的链接中收到错误:
有人可以帮忙解决这个问题吗? 谢谢!
答案 0 :(得分:2)
“Microsoft.Jet.OLEDB.4.0”提供程序是较旧的32位提供程序,只能使用.mdb数据库文件。要使用.accdb数据库,您需要使用较新的“Microsoft.ACE.OLEDB.12.0”提供程序。
由于您安装了64位版本的Access 2013,因此您已拥有64位版本的ACE提供程序。您需要做的就是
修改.NET项目的属性以作为64位应用程序运行(参考:here)和
更改代码中的连接字符串以使用Provider=Microsoft.ACE.OLEDB.12.0
。