0

フォームデータバンクプログラムをプログラミングしています。この目的のために手動でデータを読み取る必要がありました。長い調査の結果、これが私のデータベースに対処するための最良の方法だと思います。

con = new System.Data.SqlServerCe.SqlCeConnection();
String connectionString = "Data Source=|DataDirectory|\\Database1.sdf";
String executable = System.Reflection.Assembly.GetExecutingAssembly().Location;
String path = (System.IO.Path.GetDirectoryName(executable));
AppDomain.CurrentDomain.SetData("DataDirectory", path);
con.ConnectionString = connectionString;//"Data Source=C:\\Users\\Name\\Documents\\Databases\\Visual 2012\\Database1.sdf";
con.Open();

これはビジュアルエディターでは機能しますが、プログラムをリリースしてプログラムをインストールした後、インストールされたフォルダーにデータベースがないため、エラーが発生します。(インストール後、connectionStringがターゲットC:\Users\Tac\AppData\Local\Apps\2.0\9E0GCT8K.WVE\KYYL0ERB.678\Programになり、データベースがありません。

インストール後にアドレス指定を機能させる方法について、誰かが良いアイデアを手伝ってくれますか?

4

1 に答える 1

0

SetDataを使用してDataDirectoryを設定しない場合、チェックされる場所の1つは、実行可能ファイルのディレクトリです。

インストーラーにデータベース(私が推測する空のデータベース)を含めて、実行可能ファイルと同じディレクトリーにインストールされるように構成することができます。

または、Windowsの特別なフォルダの1つを使用することをお勧めします。

AppDomain.CurrentDomain.SetData("DataDirectory", Environment.SpecialFolder.ApplicationData);

このフォルダーは、インストーラー構成でも指定できます。特別なフォルダとファイルシステムエディタの詳細については、このリンクを参照してください

于 2013-01-25T05:30:22.523 に答える