我正在尝试在C#中执行datacontent.executeCommand(“string”)。当我尝试插入时,我遇到了麻烦,因为每次条目中都有一个“单词”,我认为它是一个新列,我抛出异常。
如何将'word'
变成''word''
?
答案 0 :(得分:1)
您可以使用\来转义SQL字符串中的字符。但是,我相信你的问题的最佳解决方案(以及其他许多问题,如果你从一开始就不这样做,你将会遇到它)是SQL参数。
答案 1 :(得分:1)
正如Tomas和Jason所建议的那样,最好使用SQLParameters来避免这些问题。
但是,如果它需要进行许多代码更改并且您需要快速修复,那么我会说: 您不需要正则表达式。你只需要做一个string.replace
string query;
...
query.Replace("'", "''");
如果我没有正确理解您的Q并且您需要更改其唯一的“单词”实例,您可以这样做:
query.Replace("'word'", "''word''");
答案 2 :(得分:0)
我想欢迎您来到SQL注入的精彩世界,用户可以通过执行恶意SQL来劫持您的数据库,因为您执行任意字符串; - )
您确实应该使用参数(与System.Data.SqlClient中的参数一样)或使用为您生成的LINQ数据模型对象并在其上设置值,然后提交更改。让数据访问层逃避您的值,并保护您免受可能输入包含DELETE * FROM IMPORT_TABLE等SQL语句的文本的用户的攻击。