将数据写入访问 2010 表单 VB 2010

Posted

技术标签:

【中文标题】将数据写入访问 2010 表单 VB 2010【英文标题】:Writing Data To Access2010 from VB2010 【发布时间】:2012-06-18 16:04:54 【问题描述】:

我正在尝试从 VB 2010 将数据写入 Access 2010 表。这是 VB 代码:

        Dim cn As New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\s-s-r2011f\be\s-s-rAnalysisTWEAK.ACCdb")
        cn.Open()
        Dim Str As String = "insert into BSP1 values(" & CInt(pcValue) & ",'" & (hsName) & ") "
        Dim cmd As New System.Data.OleDb.OleDbCommand(Str, cn)
        Dim icount As Integer = cmd.ExecuteNonQuery

我在“cn.Open()”行收到以下错误:

System.Data.dll 中发生了“System.InvalidOperationException”类型的第一次机会异常

我在使用连接字符串“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\s-s-r2011f\be\s-s-rAnalysisTWEAK.ACCdb;”时也遇到了这个错误。我的 Windows 版本是 7.0。

为什么连接失败?

【问题讨论】:

异常信息是什么? 缺少的报价是粘贴错误吗? & ") " 应该是 & "') " @HansUp 因此是评论,而不是回答。它最终节省了时间。 @George 试试这些连接字符串,看看它们是否有效:Connection String - Access 2010 您可能还需要对目录进行双重处理,例如 C:\\s-s-r2011f\\be... 【参考方案1】:

我以前在运行 64 位操作系统的计算机上开发时使用 Access 数据库作为后端时看到过类似的错误。

尝试在 Visual Studio 项目的编译选项中明确定位 x86 平台。

在解决方案资源管理器中,右键单击您的项目并选择属性

选择编译标签

点击高级编译选项按钮

目标 CPU 下拉列表中,选择“x86”(而不是“AnyCPU”)

当我这样做时,我能够毫无错误地执行您的代码(当然是指向我自己的访问数据库)。

希望对你有帮助。

【讨论】:

或安装 x64 ACE 驱动程序。默认情况下,您的系统将安装 32 位或 64 位 ACE 驱动程序,具体取决于您安装的 MSOffice 版本的位数。如果我没记错的话,您一次只能安装其中一个,因此同时安装 x86 和 x64 是不可能的。此外,如果您要将应用程序部署到另一台未安装 MSOffice 的 PC,则需要安装 ACE 驱动程序和/或确保该计算机上存在正确的 ACE 驱动程序位数。

以上是关于将数据写入访问 2010 表单 VB 2010的主要内容,如果未能解决你的问题,请参考以下文章

使用 vb.net 2010 锁定后端访问数据库中的表

从 Visual Studio 2010 (VB.NET) 读取访问查询

有没有使用 vb.net 更新访问表的快速方法?

访问 2010 导航表单

使用基于传递查询的表单访问 2010 膨胀

使用 VB2010 发布基于 Access 数据库的应用程序 [关闭]