0

像往常一样将 SQL Server CE 数据库安装在单独的文件夹中,并将应用程序安装在其他文件夹中。从设备卸载应用程序时,数据库不会删除。在同一设备上重新安装应用程序时,检查其中是否存在数据库 [我们在第一次安装时保存的位置],如果不存在,则保存在所有智能设备的公共文件夹中 [如\Program Files\],否则使用现有数据库。

我如何使用 C#、Windows Mobile 6 来做到这一点??????

4

1 回答 1

0

阅读您的评论后,我建议类似于以下内容:

  • 当您的应用程序启动时,让它检查您的数据库是否存在于您需要的路径(或在 INI 文件中指定的路径)

  • 如果找不到数据库,请询问用户是否应该使用默认数据库(或者,如果他们别无选择,只需复制它)。

删除应用程序后,该数据库将保留。

当您的应用程序重新安装时,它可以使用留下的数据库。

例子:

namespace DBTest1 {

  public partial class Form1 : Form {

  const readonly string MYDATABASE = "\\Application Data\\DBTest1\\sqlce.db";

  private void Form1() {
    InitializeComponent();
    CreateIfNotThere(DBTest1.Properties.Resources.sqlcedb, MYDATABASE);
  }

  void CreateIfNotThere(object data, string filename) {
    if (String.IsNullOrEmpty(filename)) {
      filename = string.Format(@"{0}{1}{2}",
      Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
      Path.DirectorySeparatorChar, "sqlCe.db");
    }
    if (data != null) {
      byte[] array = (byte[])data;
      FileInfo file = new FileInfo(filename);
      if (!file.Exists) {
        using (FileStream fs = file.Create()) {
          fs.Write(array, 0, array.Length);
        }
      }
    }
  }
  // other code
}

如果您想编写自定义 CABWIZ 步骤,请参阅如何从命令行为智能设备 cab 项目创建 inf 文件?线。

于 2011-11-01T14:54:29.613 回答