我正在尝试注销执行的 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("'","+'''");
我不会工作,因为 + 符号在不同的位置。
有什么办法可以克服这个吗?