0

通常どおり、SQL Server CE データベースを別のフォルダーにインストールし、アプリケーションを別のフォルダーにインストールします。デバイスからアプリケーションをアンインストールしている間、データベースは削除されません。同じデバイスにアプリケーションを再インストールするときは、[最初のインストール時に保存した場所] にデータベースが存在するかどうかを確認し、存在しない場合はすべてのスマート デバイスの共通フォルダーに保存し [のように\Program Files\]、存在しない場合は既存の DB を使用します。

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 手順の記述に取り掛かりたい場合は、コマンド ラインからスマート デバイス キャブ プロジェクトの inf ファイルを作成する方法に関する記事があります。スレッド。

于 2011-11-01T14:54:29.613 に答える