我使用的是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().上也会崩溃
我选择从数据表中进行选择,因为这是一个简单的数据表。
电子邮件组_UID[int][PK]电子邮件组名称[nvarchar][length=50]
我确信我只是盯着这个看太久了,再也看不到森林里的树了,所以我希望有人能直接打我一巴掌:)
提前谢谢。
编辑:当绑定到原始的MS Access 2007数据库(accdb)时,此代码都有效。当然是不同的供应商。而且-我没有导入表,而是手动重新创建的。
第二版:即时窗口显示"System.Data.dll"中发生类型为"System.Data.OleDb.OleDbException"的首次机会异常
您应该使用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;"