我想記下執行的SQL。保存執行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("'","+'''");
我不會因爲+符號的工作是在不同的位置。
有什麼辦法可以解決這個問題嗎?
使用參數 –
我編輯了您的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –
@lc。你的意思是使用參數?可以舉個例子嗎? – Worgon