2012-03-01 7 views
10

"C:¥Users¥John¥documents¥visual studio 2010¥Projects¥PAS¥PAS¥bin¥Debug¥PatAddSysファイルに自動ネームデータベースを添付しようとしました。 .mdfが失敗しました。同じ名前のデータベースが存在するか、指定されたファイルを開くことができないか、UNC共有上にあります。自動名前付きデータベースエラーを添付しようとしました。エラー

ここで何が間違っていますか?私は私の道のために正しいコードを持っている(と思う)が、それでもこのエラーは、ここで発生した、私のデータベースのパスが

ある
private string dbPath = Application.StartupPath + "//PatAddSys.mdf"; 

ここで私のデータベースの場所は

enter image description here

答えて

12

だユーザーインスタンスプロパティを設定してみてくださいあなたの接続文字列をtrueにします。これを接続文字列に追加する必要があります。

User Instance=True 

また、同じ名前のデータベースが既に含まれている可能性があるため、データベースサーバーを再度確認してください。

希望に役立ちます。

-3

使用この:

Path.GetFullPath(yourpath_string) 

それは私がこの文字列は私に

<add name="MAB_ERP_2_0.Properties.Settings.MyConnection" connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=Database\MabErp2.mdf;Integrated Security=true;" 
     providerName="System.Data.SqlClient" /> 

しかし、もしを上記のエラーを与える、それは非常に非常に遅くなるかもしれないと思うしかし

+0

に接続文字列を変更するよりも、

sqllocaldb create MyDatabase 

を書くよりも、 最初に行くには、コマンドプロンプトします質問.... ....私には –

+0

はい、意味がありません。 – Luf

1

に動作します追加|データディレクトリ|データベース名の前にそれはうまく動作します

<add name="MAB_ERP_2_0.Properties.Settings.MyConnection" connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Database\MabErp2.mdf;Integrated Security=true;" 
     providerName="System.Data.SqlClient" /> 
0

今後の対応については、

あなたはそれを修正しました:

private string dbPath = Application.StartupPath + "//PatAddSys.mdf"; 

しかし、単に一歩をしなければならないがバックスラッシュを使用することです「\」の代わりにスラッシュ「/」 ので、それはこのようになりべき:

private string dbPath = Application.StartupPath + "\\PatAddSys.mdf"; 

&おかげで、このラインは仕事:)

2

変更の両方現在workiのたくさん私を救いましたngディレクトリと接続文字列を正しいものに変換して解決します。

「サーバーエクスプローラ」にあるデータベースを選択して をクリックし、接続文字列をプロパティに正確に表示してコピーし、コードで使用します。

enter image description here

その後、現在の作業ディレクトリのためのデータベースの名前なしで同じパスを使用します。ソリューション - >プロパティ - >デバッグは、現在の作業ディレクトリのパスがどこにあるかを示します。これはビジュアルスタジオ2015で機能します。

私はこの

Private constr As String = "Data Source = (LocalDB)\MSSQLLocalDB;AttachDbFilename=" + 
     Directory.GetCurrentDirectory() + "\DBNAME.mdf;" + 
     "Integrated Security=True;Connect Timeout=30;User Instance=False" 
0

実は私はこの問題に墜落しましたが、私は簡単にそれを処理して、私の接続文字列を使用します。 接続文字列が

connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;" 

の場合は、独自のlocalDBを作成する必要があります。 VSへのリターンよりも、あなたのデータベース

sqllocaldb start MyDatabase 

を開始し、私はこの答えはわからない

connectionString="Data Source=(LocalDB)\MyDatabase;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;" 
関連する問題