2

SQL コンパクトを使用する ac# winforms アプリがあり、DB の接続文字列は次のとおりです。

<add name="Test.Properties.Settings.TestManagerConnectionString"
            connectionString="Data Source=|DataDirectory|\Database\TestManager.sdf"
            providerName="Microsoft.SqlServerCe.Client.3.5" />

接続文字列が指しているパスを取得するにはどうすればよいですか? 例: C:\Users\name\AppData... など

4

1 に答える 1

1

なぜ別のディレクトリに移動したいのですか? デフォルトでは、管理者以外のユーザーは、Program Files ディレクトリ ツリーを変更するためのアクセス権を持っていません。AppData は、(ネットワークでホストされたプロファイルの場合) ユーザーのアプリ データ ディレクトリのネットワーク上の適切なディレクトリを指すユーザー固有のストアです。

複数のユーザーのデータを共有する場合は、All_Users データ ディレクトリがあります。ただし、SqlCE接続文字列で指定する方法がわかりません。

アップデート

これがappdataディレクトリを決定するための答えです。

DataDirectory プロパティを設定するには、AppDomain.SetData メソッドを呼び出します。DataDirectory プロパティを設定しない場合、データベース フォルダーへのアクセスに次の既定の規則が適用されます。

  1. ユーザーのコンピューター上のフォルダーに配置されるアプリケーションの場合、データベース フォルダーはアプリケーション フォルダーを使用します。
  2. ClickOnce で実行されているアプリケーションの場合、データベース フォルダーは、作成された特定のデータ フォルダーを使用します。
于 2013-05-22T20:20:06.017 に答える