在Windows Mobile 6 Emulator上连接到SQL Compact Edition的问题

时间:2010-02-02 14:56:10

标签: c# windows-mobile sql-server-ce

我正在使用模拟器为Windows Mobile 6开发应用程序。当我尝试打开与SDF文件的数据库连接时,它抛出一个异常,它无法连接或找到该文件。我的问题是:

  1. 移动设备上应该部署的SDF文件在哪里?
  2. 我在构建项目时(例如在windows窗体应用程序中)是否自动将SDF文件部署到模拟器中,或者我是否必须手动执行此操作?
  3. 任何帮助都将不胜感激。

3 个答案:

答案 0 :(得分:2)

  1. “where”由您决定。您希望它在模拟器上,在其文件系统中,在您的连接字符串指向的位置。记住CE路径始终是完全合格的。
  2. 这取决于。如何将SDF添加到您的项目中?如果SDF文件本身在项目中?如果是这样,设置的“构建操作”是什么(如果要部署,应该是内容)?什么是“复制到输出目录”设置为?如果您希望自动部署它,它应该是“始终”或“如果更新则复制”。 如果您使用此机制进行部署,该文件将与EXE位于同一文件夹中(或者如果您在子文件夹中将其置于项目中,则它将位于部署目录的子文件夹中)。
  3. 您还可以使用远程文件查看器手动部署文件,方法是将模拟器配置为共享桌面文件夹,或者使用模拟器管理器“停靠”模拟器并使用ActiveSync复制文件。

答案 1 :(得分:1)

string connection=@"Data Source=\Program Files\NameOfProgram\NameOfDataBase.sdf;Persist Security Info=false;";

即。如果您的程序名称为HelloWorld且数据库名称为Test.sdf,则连接字符串为:

string connection=@"Data Source=\Program Files\HelloWorld\Test.sdf;Persist Security Info=false;";

希望这有帮助!

答案 2 :(得分:0)

// TODO:此行代码用于指示可以存储目录信息的路径名称。

    string databaseconnection = ("Data Source=" + (System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase)) + "\\EBDataBase.sdf;Persist Security Info=False;");

SDF名称.. = EBDataBase

它自动获取连接字符串.....