2

接続文字列を変更せずに、あるコンピューターから別のコンピューターにプロジェクトフォルダーを転送できるように、ローカルデータベースで接続文字列をどのように使用しますか?

このようではありません

connection_String As String = "Data Source=C:\Users\Kyle\Desktop\CSCI_388_Group_Project\CSCI_388_Group_Project\CSCI_388_Group_Project\CSCI_388_Group_Project_Database.sdf"

もっとこのように

connection_String As String = "Data Source=|DataDirectory|\CSCI_388_Group_Project_Database.sdf"

データベースプロパティの下の接続フィールドに2番目の例を入力しようとすると、不正な文字エラーが発生します。

4

3 に答える 3

3

Environmentクラスには、必要なパスのほとんどが含まれています。

を呼び出しEnvironment.GetFolderPathて、特別なディレクトリを取得できます。たとえば、My Documentsディレクトリを取得するには、 を呼び出しますEnvironment.GetFolderPath(Environment.SpecialFolder.Personal)

ここですべての特別なフォルダーを参照できます:
http://msdn.microsoft.com/en-us/library/system.environment.specialfolder.aspx

具体的な例では、次を使用します。

connection_String As String = _
    "Data Source=" & 
    Path.Combine(
        Environment.GetFolderPath(Environment.SpecialFolder.Desktop),
        "CSCI_388_Group_Project_Database.sdf" )

代替案:
ユーザーに尋ねることは可能ですか? デスクトップにある場合は、移動する可能性があります。

于 2012-10-09T17:57:10.977 に答える
2

sdfあなたが存在するのと同じフォルダにファイルを保持することにした場合はexe、次のようにすることができます.

Dim ExeFolder As String = AppDomain.CurrentDomain.BaseDirectory
Dim connection_String As String = "Data Source=" & ExeFolder & "CSCI_388_Group_Project_Database.sdf"  

それが役に立てば幸い !

于 2012-10-09T18:10:13.367 に答える
1

簡単な方法の 1 つは、環境変数を使用してフォルダーへのパスを指定することです。

次に、VB プログラムでEnviron 関数を使用して環境変数の設定を取得し、文字列操作を使用して接続文字列を作成します。

環境変数が設定されていない場合に備えて、デフォルトが必要です。

ただし、アプリケーションを起動すると、環境変数を設定するスクリプト内で実行できます。

2 番目の方法は、アプリケーションのコマンド ラインでパス名を指定して、アプリケーションの起動時にコマンド ラインを使用してパスを指定することです。

3 番目の方法は、使用する Windows レジストリ キーを用意することです。次に、環境変数と同様に、Windows レジストリにフォルダー パスを照会し、そこから接続文字列を作成します。

この 3 番目の方法では、アプリケーション インストーラーにレジストリ キーを挿入させることができます。

4 番目の方法は、フォルダー パスのエントリを含む .ini ファイルを用意することです。

于 2012-10-09T17:59:32.030 に答える