C#中的正则表达式

时间:2009-06-03 01:19:22

标签: c# linq-to-sql

我正在尝试在C#中执行datacontent.executeCommand(“string”)。当我尝试插入时,我遇到了麻烦,因为每次条目中都有一个“单词”,我认为它是一个新列,我抛出异常。

如何将'word'变成''word''

3 个答案:

答案 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语句的文本的用户的攻击。