単一の値を SQL データベースに挿入しようとしています。「\」を挿入しない限り、正常に機能します。その場合、データベース内の「\」が失われます。
たとえば、デバッガーには次のコマンド テキストが表示されます。
Insert into tblProjekte (Projektbezeichnung) values ('\\bla\\bla\\bla')
しかし、SQL Server Profiler では、常に次の Insert ステートメントを見つけます。
Insert into tblProjekte (Projektbezeichnung) values ('\bla\bla\bla')
私のソースコード:
public void InsertProjekt(string Projektbezeichnung)
{
SqlConnection con = new SqlConnection();
con.ConnectionString = "Server=localhost; Database=myProjekt; UID=user; PWD=pwd";
con.Open();
SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandText = String.Format("Insert into tblProjekte (Projektbezeichnung) values ('{0}')",@Projektbezeichnung);
int rows = com.ExecuteNonQuery();
}
ソースコードを次のように変更した後:
SqlCommand com = new SqlCommand("INSERT INTO tblProjekte (Projektbezeichnung) VALUES (@Projektbezeichnung)");
com.Parameters.AddWithValue("@Projektbezeichnung", Projekt.Projektbezeichnung);
デバッグ中に次の情報を取得します。
値は「\\Tesafilm」、SQLValue は「\Tesafilm」です。