如何连接到Windows手机上的SQLite(CE)数据库?
问题描述:
我想为我的手机6手机应用程序创建一个数据库。我所做的是在视觉工作室,我去了我的项目名称,并右键单击它,去添加 - >添加新项目 - >数据 - >选择数据文件。如何连接到Windows手机上的SQLite(CE)数据库?
它创建了一个名为“AppDatabase1.sdf”
现在我想连接到我的数据库,但我不知道怎么样连接字符串,因为我看不出有任何的app.config,我通常会在数据库文件期待它。
所以我只是有
SqlCeConnection conn = new SqlCeConnection("Not sure what to put here");
conn.Open();
当我点击服务器资源管理器选项卡我看到我的数据库,所以我点击它。在属性部分,它有一些标签为“连接字符串”的东西,但它看起来像实际文件的路径,当我在模拟器中运行它时,出现错误。
“无法找到数据库文件 检查数据库的路径。”
感谢
答
您不必在应用程序之外创建数据库。如果你有一个安全防护措施可能会更好,所以如果用户意外删除它或者它不存在,那么你可以轻松地重新创建它。这对初始安装很有用。下面的代码会做你想做的(SQLCE/Mobile 2005例子):
Private Sub ConnectToDB()
If (File.Exists("\SystemCF\LPI\inventory.sdf")) Then
Try
cn = New SqlCeConnection("Data Source=\SystemCF\LPI\inventory.sdf;Password=")
cn.Open()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
ElseIf (File.Exists("\UserCF\LPI\inventory.sdf")) Then
Try
cn = New SqlCeConnection("Data Source=\UserCF\LPI\inventory.sdf;Password=")
cn.Open()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
Else
Try
If (Not (Directory.Exists("\SystemCF\LPI"))) Then
Directory.CreateDirectory("\SystemCF\LPI")
End If
Dim engine As New SqlCeEngine("Data Source=\SystemCF\LPI\inventory.sdf")
engine.CreateDatabase()
cn = New SqlCeConnection("Data Source=\SystemCF\LPI\inventory.sdf")
cn.Open()
Call dropAndCreateDatabase()
Catch ex As Exception
MessageBox.Show(ex.Message)
MessageBox.Show("Unable to create database!", "Database Create Failed")
End Try
End Sub
答
SqlCeConnection connection = new SqlCeConnection();
connection.ConnectionString = "Data Source =" + filename + ";password=" + password;
connection.Open();
当然,password=<password>
部分只有当你保护的数据库,这是不是默认的情况下需要。
顺便说一句,这不是SQLite,它是SQLServer CE(或简称SQLCE)。
编辑:如果您只指定文件的名称(无路径),请确保该文件位于当前工作的目录中。显然,根据错误消息,您指定文件名的方式有些问题。我敢打赌,只要指明它,你就应该前进。
EDIT2:为了检查问题出在你的程序中还是在DB文件中,download DataPort Console并用它在设备中打开你的DB。那样你可以验证你的数据库可以正确访问。
啊。我们正在寻找我看到SqLite的答案,并认为它可能是另一个名字。无论如何,我不认为我有密码,我做了这个SqlCeConnection conn =新的SqlCeConnection(“数据源= AppDatabase1.sdf”);但我仍然无法连接数据库。 – chobo2 2009-11-24 17:29:44
查看我编辑的答案 – 2009-11-24 18:21:10
有没有特殊的文件夹?矿在我的项目的根目录。 – chobo2 2009-11-24 23:01:48