SQL中转义字符串的标准函数

时间:2009-04-23 12:42:38

标签: sql .net-2.0 escaping

我正在.NET2.0中编写一个程序,我需要在使用之前转义输入。遗憾的是,标准参数方法系统在我正在使用的系统中并不完全有效。使用ODBCCommand类我不能放置一个?语句的select部分中的参数(这是我正在做的一点点技巧所需)而不会出现错误,因此我需要手动转义可能包含或不包含单引号(')的字符串。有什么建议吗?

编辑 - 示例SQL:

我希望如此:

INSERT INTO TABLE_A (COLUMN_A, COLUMN_B)
SELECT (?, COLUMN_C)
FROM TABLE_B
WHERE COLUMN_D = ?

原样:

INSERT INTO TABLE_A (COLUMN_A, COLUMN_B)
SELECT ('INPUT_VALUE_HERE', COLUMN_C)
FROM TABLE_B
WHERE COLUMN_D = ?

编辑:Sybase ASE是DB驱动程序,通过ODBC

2 个答案:

答案 0 :(得分:3)

Dim s As String = "Michael O'Flatley"
Dim escapedString as String = s.Replace("'", "''")

答案 1 :(得分:3)

您可以使用此扩展函数

解析字符串参数
public static string SqlEncode(string str)
{
    if (str == null) return String.Empty;
    return str.Replace("'","''");
}