visual studio(vb.net)无法加载访问数据库

时间:2015-12-12 22:44:36

标签: vb.net ms-access

这是我的代码

Imports System.Data
Imports System.Data.OleDb

Public Class frmMain
    ' database connection string
    Const CONNECTION_STRING As String = "Provider=Microsoft.ACE.OLEDB.12.0; data source=business.accdb"

    ' database connectivity objects
    Dim dbConnection As OleDbConnection
    Dim dbAdapter As OleDbDataAdapter
    Dim dbDataSet As DataSet

    ' current record index
    Dim recordIndex As Integer = 0

    Private Sub updateTextboxes()
        txtCustomerID.Text = Convert.ToString(dbDataSet.Tables("Customers").Rows(recordIndex).Item("CustomerID"))
        txtName.Text = Convert.ToString(dbDataSet.Tables("Customers").Rows(recordIndex).Item("Name"))
        txtAddress.Text = Convert.ToString(dbDataSet.Tables("Customers").Rows(recordIndex).Item("Address"))
        txtCity.Text = Convert.ToString(dbDataSet.Tables("Customers").Rows(recordIndex).Item("City"))
        txtProvince.Text = Convert.ToString(dbDataSet.Tables("Customers").Rows(recordIndex).Item("Province"))
        txtPostal.Text = Convert.ToString(dbDataSet.Tables("Customers").Rows(recordIndex).Item("Postal"))
    End Sub

    Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles Me.Load
        ' create connection to database
        dbConnection = New OleDbConnection(CONNECTION_STRING)
        dbConnection.Open()

        ' setup and construct the data adapter
        dbAdapter = New OleDbDataAdapter("SELECT * FROM Customers", dbConnection)

        ' construct DataSet object to hold the returned data
        dbDataSet = New DataSet()

        ' make it happen!
        dbAdapter.Fill(dbDataSet, "Customers")

        ' use the data!
        updateTextboxes()

        ' close the connection
        dbConnection.Close()

    End Sub

    Private Sub btnNext_Click(sender As Object, e As EventArgs) Handles btnNext.Click
        ' increment record index by one
        recordIndex = recordIndex + 1
        ' am I past the last record?
        If (recordIndex > (dbDataSet.Tables("Customers").Rows.Count - 1)) Then
            recordIndex = 0
        End If

        ' update the textboxes
        updateTextboxes()
    End Sub

End Class

代码应该可以工作,它由我的讲师提供,作为课堂示例。它上周在我的笔记本电脑上完美运行。我正在尝试将它作为我们最终项目的参考,但现在它不会运行。该项目需要使用代码导入数据库,因此使用VS中的“添加新数据源”工具或类似的东西不是一个可行的解决方案。我没有得到任何类型的错误消息。我在Visual Studio中单击“开始”,它似乎正在加载程序片刻(开始按钮显示为灰色,加载光标出现等),然后停止。

这是我的调试输出。

  

线程0x1504已退出,代码为0(0x0)。

     

'dbAccessDemo.vshost.exe'(CLR v4.0.30319:dbAccessDemo.vshost.exe):   加载   'C:\用户\吉\桌面\ business_completeLesson \ dbAccessDemo \ dbAccessDemo \ BIN \调试\ dbAccessDemo.exe'。符号已加载。

     

'dbAccessDemo.vshost.exe'(CLR v4.0.30319:dbAccessDemo.vshost.exe):   加载   'C:\ Windows \ Microsoft.Net \组件\ GAC_MSIL \辅助\ v4.0_4.0.0.0__b03f5f7f11d50a3a \ Accessibility.dll'。无法找到或打开PDB文件。

     

'dbAccessDemo.vshost.exe'(CLR v4.0.30319:dbAccessDemo.vshost.exe):   加载   'C:\ Windows \ Microsoft.Net \组件\ GAC_MSIL \ System.Runtime.Remoting \ v4.0_4.0.0.0__b77a5c561934e089 \对System.Runtime.Remoting.dll'。   跳过加载符号。模块已优化并具有调试器选项         

'dbAccessDemo.vshost.exe'(CLR v4.0.30319:dbAccessDemo.vshost.exe):   加载   'C:\ Windows \ Microsoft.Net \组件\ GAC_32 \ System.Transactions的\ v4.0_4.0.0.0__b77a5c561934e089 \ System.Transactions.dll'。   跳过加载符号。模块已优化并具有调试器选项         

程序'[9984] dbAccessDemo.vshost.exe'已退出代码   -1066598274(0xc06d007e)'找不到模块'。

在上周(当我能够运行它)之间,现在,我对Office 365的免费试用期已过期。我卸载了它,并通过Dreamspark安装了我的大学提供的Access 2016副本。我猜这可能与我的问题有关,但除此之外我已经迷失了。

我正在使用Visual Studio Express 2015和Windows 10。

修改

解决了我自己的问题。我已下载+已安装Access Database Engine 2007,现在效果非常好。

1 个答案:

答案 0 :(得分:0)

解决了我自己的问题。我已下载+已安装Access Database Engine 2007,现在效果非常好。