带有SQL Server CE数据库的连接字符串

rfc*_*484 3 c# connection-string windows-ce visual-studio-2008 sql-server-ce

我正在尝试与Windows CE 5.0应用程序中的数据库建立连接,而我正在使用Compact Framework 2.0

数据库位于项目的文件夹中:

C:\ Documents and Settings\softdil\My Documents\Visual Studio 2008\Projects\Datalogic\Datalogic

这些是我用来连接和打开数据库的行:

SqlCeConnection conn = new SqlCeConnection();
conn.ConnectionString = "Data Source = Datalogic.sdf;";
conn.Open();
Run Code Online (Sandbox Code Playgroud)

这给了我一个漂亮的"找不到数据库文件"的错误信息.

我也尝试了绝对的uri,结果相同:

conn.ConnectionString = "Data Source = C:\\Documents and Settings\\softdil\\My Documents\\Visual Studio 2008\\Projects\\Datalogic\\Datalogic;";
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?

可能是它与移动设备中调试(执行)的应用程序有关?

我真的不这么认为,因为数据库在加载应用程序时起作用,这意味着它与列表框相关联并从数据库正确加载数据.

Fre*_*ung 6

在Win CE应用程序中,我们使用以下命令获取执行文件的完整路径:

string StartupPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase);
Run Code Online (Sandbox Code Playgroud)

StartupPath然后使用您可以将数据库名称添加到该路径并将其添加到连接字符串:

string datalogicFilePath = Path.Combine(StartupPath, "Datalogic.sdf");
string connectionString = string.Format("DataSource={0}", datalogicFilePath);
Run Code Online (Sandbox Code Playgroud)