実行するSQLをログに記録しようとしています。
データベースにデータを保存するために挿入プロセスを実行する関数呼び出し LogGenerateReport(String Sql) があります。
私が直面している問題は、SQl '' に関するものです。
例えば:
INSERT INTO TABLE(Sql)
VALUE('SELECT * FROM Sales WHERE SalesID = 'ABC123';')
そのエラーが返され、見積もりのために何が起こったのかがわかります。データベース内でもう一度試して、新しいクエリを開き、SQLの上に貼り付けて、次のように変更しました。
INSERT INTO TABLE(Sql)
VALUE('SELECT * FROM Sales WHERE SalesID = ''' + 'ABC123' + ''';')
期待どおりの結果が返ってきました。
Output:
|Sql |
|SELECT * FROM Sales WHERE SalesID = 'ABC123';|
しかし、私の .aspx.cs ページに戻ると、実行されたクエリを格納する文字列ビルダーがあり、実行する前にまずクエリを保存する必要があります。
For example:
System.Text.StringBuilder str = new System.Text.StringBuilder();
str.append("SELECT * FROM Sales WHERE SalesID = 'ABC123';");
api.LogGenerateReport(Convert.tostring(str));
引用のため、上記のようなエラーが返されます。
私はこれを克服するためにそれを理解しようとしています、そして私の考えは
String TempSql = Convert.tostring(str);
TempSql.Replace("'","+'''");
+記号が別の位置にあるため、機能しません。
これを克服する方法はありますか?