2

.sdf データベース ファイルがある WPF アプリケーションに「Data」フォルダがあります。このファイルは、私のアプリケーションのデータベースです。

アプリを開発するとき、次のようにデータベースへの固定パスを使用しました。

'Data Source=P:\Dropbox\Projects\MembersApp\MembersApp\bin\Debug\Data\RF_db.sdf'

|DataDirectory| を使用したい アプリがインストールされている場合でも、アプリが常にデータベースを見つけることができるように値。StackOverflow でこのソリューションを見つけました。

string executable = System.Reflection.Assembly.GetExecutingAssembly().Location;
string path = (System.IO.Path.GetDirectoryName(executable));
AppDomain.CurrentDomain.SetData("DataDirectory", path);
string dataSourceHome = "Data Source=|DataDirectory|\RF_db.sdf";

しかし、最後の行で「コンパイル定数値が正しくありません」というエラーが表示されます。私は試してみました:

string dataSourceHome = @"Data Source=|DataDirectory|\RF_db.sdf";

しかし、それはうまくいきません。

ここで何が問題なのですか?

4

3 に答える 3

1

あなたが使用することができます:

string dataSourceHome = string.Format("Data Source={0}\\RF_db.sdf", Environment.CurrentDirectory);

また

 string dataSourceHome = string.Format("Data Source={0}\\RF_db.sdf", System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location));
于 2012-12-29T21:32:17.567 に答える
1

Do not change DataDirectory in your code; it is set by the installer and changing it will prevent your app from knowing where the data was installed. Just use:

string dataSourceHome = @"Data Source=|DataDirectory|\RF_db.sdf";

And nothing else. Do not call AppDomain.CurrentDomain.SetData("DataDirectory", path); that's what is breaking things.

于 2012-12-30T02:49:54.537 に答える
0

ADO.Net 接続文字列を作成しているようです。情報が不足しているだけではありませんdataSourceHomeか?この投稿を見てください。

または、接続を作成する別の方法がConnectionStrings.comで見つかる場合があります。

于 2012-12-29T21:14:09.773 に答える