2

私はC#にかなり慣れていないので、データベースを使い始めたばかりです。プロジェクトフォルダーにローカルデータベースを作成しました。データベースのプロパティをクリックすると、次のように「接続文字列」が表示されます。

Data Source="C:\Users\Documents\Visual Studio 2012\Projects\DataBaseTest\MyDatabase#1.sdf"

私の質問は簡単です。その行を使用して接続文字列を作成するにはどうすればよいですか? これを書き込むと、何らかの理由でエラーが発生します。

SqlConnection con = new SqlConnection(Data Source="C:\Users\Documents\Visual Studio
    2012\Projects\DataBaseTest\MyDatabase#1.sdf");
4

6 に答える 6

7

SQL Server Compact エディションのデータベースを使用しているため、 (SQL Server に使用される)SqlCeConnectionの代わりに使用する必要があります。SqlConnection

接続文字列のバックスラッシュもエスケープする必要があります。これは次のように\なります\\

SqlCeConnection sqlConnection = new SqlCeConnection("Data Source=C:\\Users\\Documents\\Visual Studio
2012\\Projects\\DataBaseTest\\MyDatabase#1.sdf");

またはそのままの文字列を使用します。

SqlCeConnection sqlConnection = new SqlCeConnection(@"Data Source=C:\Users\Documents\Visual Studio
2012\Projects\DataBaseTest\MyDatabase#1.sdf");

プロジェクトで SqlCe を使用するために必要なライブラリがない場合は、こちらの他の回答を参照してください。

ここからライブラリをダウンロードしますMicrosoft SQL Server Compact 4.0

  1. System.Data.SqlServerCe.dllプロジェクトへの参照を追加する
  2. この using ディレクティブを追加しusing System.Data.SqlServerCeます。
  3. SqlCeConnectionの代わりに使用SqlConnection
于 2012-10-15T09:40:43.247 に答える
4

次のように、バックスラッシュをエスケープする (バックスラッシュを 2 つのバックスラッシュに置き換える) か、文字列の前に @ を付けて、C# に文字どおりに受け取るように指示する必要があります。

new SqlConnection("C:\\Users\\...")

また

new SqlConnection(@"C:\Users\...")
于 2012-10-15T09:31:50.970 に答える
3

パスの場合、そのようにバックスラッシュを追加することはできません。バックスラッシュをエスケープする必要があります。2つの方法があります

バックスラッシュをエスケープする

方法 1 - パス文字列の先頭に @ を使用する

SqlConnection con = new SqlConnection(@"Data Source=C:\Users\Documents\Visual Studio
    2012\Projects\DataBaseTest\MyDatabase#1.sdf");

方法 2 - 1 つのバックスラッシュの代わりに 2 つのバックスラッシュを追加する

SqlConnection con = new SqlConnection("Data Source=C:\\Users\\Documents\\Visual Studio
    2012\\Projects\\DataBaseTest\\MyDatabase#1.sdf");
于 2012-10-15T09:33:17.577 に答える
2
SqlConnection con = new SqlConnection(@"C:\Users\Documents\Visual Studio
    2012\Projects\DataBaseTest\MyDatabase#1.sdf");
于 2012-10-15T09:30:11.803 に答える
2

@ 記号を使用して文字列がリテラルであることを示し、特殊文字を無視する必要があります。

このページにはサンプルが表示されます http://www.dotnetperls.com/string-literal

于 2012-10-15T09:33:23.333 に答える