2012-02-24 7 views
2

どうして私のデータベースコンテキストに挿入したパスが機能していませんか?ここに私のパスのためのコードローカルフォルダ内のdb mdfファイルのパスを設定します

private string dbPath = @"TEST.MDF" 
DataClasses1DataContext myDbContext = new DataClasses1DataContext(dbPath); 

だ。しかし、私は、クエリを実行すると、これは私にエラー

TEST.MDFが失敗したファイルの自動名前のデータベースをアタッチしようとする試みを与えます。同じ名前のデータベースが存在するか、または指定されたファイルが 開けないか、 、またはUNC共有上にあります。

は、これが私のCSのソースコードの同じ場所にあるマイフォルダは、この

enter image description here

MDFファイルのように見える方法ですが、事は、彼らがパスを正しく読んでいないです。

私の考えはこれは私が別のPCに転送するときに何度もパスを設定する必要がないということです。これに修正がありますか?

+1

あなたの '* .cs'ファイルと同じ場所にありますが、あなたの**実行可能ファイル**は**このディレクトリにはありません**!ビルドして実行すると、実行ファイルは 'bin \ debug'にビルドされている可能性があります。そのディレクトリには' test.mdf'ファイルはありません。 –

+0

soo使用する必要がありますか? /../../Test.MDF? – user962206

+0

いいえ - **あなたのコンピュータのSQL Serverインスタンスに**あなたのMDFファイルを**添付**して**論理名**を与え、その論理名を使って.MDFファイルとその場所..... –

答えて

1

private string dbPath = Application.StartupPath + "\\TEST.MDF"; 

について何でもごTest.mdfが正しいディレクトリにありません。このコードを動作させるには\bin\Debugに移動してください。

+0

Application.StartUpPathは何をしますか? – user962206

+1

実行ファイルのフォルダの場所を返します。あなたの.EXEは "C:\ Programming \ Projects \ C#\ testProject1 \ bin \ Debug"にあります。それが返す経路です。 「\\ Test.mdf」を追加する必要がある理由は、そのパスにファイル名を追加することで、完全パスが C:¥Programming¥Projects¥C#¥testProject1¥bin¥Debug¥Testのようになります。 mdf – Jason

+0

ありがとう:)乾杯。 – user962206

0

プロジェクトに.mdfファイルを追加する方がいいでしょう。既存アイテムを追加する=>フォルダから.mdfファイルを選択します。プロジェクトに.mdfファイルを追加した後、Web.configまたはApp.Configファイルで接続文字列が自動的に生成され、その接続文字列を使用してストアを起動できます。今すぐプロジェクトをビルドすると、新しい.mdfファイルが/ bin/dubugフォルダにコピーされ、.mdfファイルに接続するコードを1行書く必要はありません。

関連する問題