将数据写入访问 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的主要内容,如果未能解决你的问题,请参考以下文章