我正在使用SQL Server Compact数据库(3.5)。我已经浏览了本网站上的每篇文章(以及其他文章)我都能找到关于这个问题的文章,但似乎找不到问题。我正在使用Visual Studio 2012,VB.Net。
我的提供者字符串是:
Dim sqlConn As New System.Data.OleDb.OleDbConnection("Provider=Microsoft.SQLServer.CE.OLEDB.3.5;Data Source=" & My.Application.Info.DirectoryPath & "\pw.sdf" & ";Password=XXXyyy1234;Persist Security Info=True;")
我发现故障的代码是:
'Create SQL Query
Dim SQLString As String = "SELECT * FROM EmailGroups"
'Create Dataset, Open Connection
Dim dsPWC As New DataSet()
Dim OleDbDataAdapter1 As System.Data.OleDb.OleDbDataAdapter = New System.Data.OleDb.OleDbDataAdapter(SQLString, sqlConn)
sqlConn.Open()
当然,它打破了.Open()。
我选择从那个数据表中选择,因为它很简单。
EmailGroup_UID [int] [PK] EmailGroup_Name [nvarchar] [length = 50]
我确信我一直只是盯着这个太长时间,再也看不到树林了,所以我希望有人可以直接拍我:)
提前致谢。
编辑:此代码在绑定到原始MS Access 2007数据库(accdb)时都有效。当然是不同的提供商。并且 - 我没有导入表格,我手动重新创建。
第二次编辑:立即窗口说'System.Data.dll'中出现'System.Data.OleDb.OleDbException'类型的第一次机会异常
答案 0 :(得分:1)
您应该使用SqlCeConnection而不是OldDbConnection。
如果您必须使用OleDbConnection,请使用" ssce:数据库密码"像这样:
"Provider=Microsoft.SQLServer.CE.OLEDB.3.5;Data Source=" & My.Application.Info.DirectoryPath & "\pw.sdf" & ";SSCE:Database Password=XXXyyy1234;Persist Security Info=True;"