1

Windows 7 64 ビットで SQL Server 2008 R2 Express を使用する C# アプリケーションを作成しています。私が直面している問題は、接続文字列が間違っているためにデータベースに接続できないことです。私は接続文字列を作成するために .udl ファイルを使用しています。

Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Restorant;
DataSource=.\SQLEXPRESS

この接続文字列は、認識できないエスケープ値があることを示すエラーを作成しています。友人が自分のプロジェクトで動作すると言っていたので、データ ソースを (ローカル) に変更しようとしましたが、不明なインスタンス名エラーのために接続できませんでした。

データベースに接続する他の方法はありますか?

4

3 に答える 3

3

C#では、文字はエスケープシーケンス\の最初の文字と見なされます。 のは有効なエスケープシーケンスとして認識されないため、エラーが発生します。
\SData Source=.\SQLEXPRESS

したがって、接続文字列の前に文字を付ける@か、エスケープ文字を2倍にする必要があります。 @文字の説明については、文字\\の操作 を参照してください。

string conString = @"Integrated Security=SSPI;Persist Security Info=False;" + 
                   @"Initial Catalog=Restorant;Data Source=.\SQLEXPRESS";

必要に応じて、このメソッドを使用して複数の文字列を逐語的に作成することを忘れないでください。

また、接続文字列のデータソース部分の小さなエラーにも注意してください。データとソースの間にスペースが必要です。connectionstrings.comを参照してください

于 2013-01-06T16:41:39.007 に答える
1

現在、接続文字列はエスケープしようとしていSます.\S。これに変更

//double the backslash to escape the slash
string connectionString = "Integrated Security=SSPI;Persist Security Info=False;
          Initial Catalog=Restorant; Data Source=.\\SQLEXPRESS";

また

//precede the string with @
string connectionString = @"Integrated Security=SSPI;Persist Security Info=False;
          Initial Catalog=Restorant; Data Source=.\SQLEXPRESS";  
于 2013-01-06T16:46:15.583 に答える
0

データソース名を datasource に変更してみてくださいData Source=localhost\SQLExpress

于 2013-01-06T16:45:56.610 に答える