Стандартная функция для удаления строк в SQL - PullRequest
1 голос
/ 23 апреля 2009

Я пишу программу на .NET2.0, и мне нужно экранировать входы перед их использованием. К сожалению, система стандартных параметров не полностью работает в системе, которую я использую. Используя класс ODBCCommand я не могу разместить? параметр в части выбора оператора (который требуется для небольшой хитрости, которую я делаю) без получения ошибки, поэтому мне нужно вручную экранировать строки, которые могут содержать или не содержать одну кавычку ('). Есть предложения?

Edit- Пример 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 - это драйвер БД через ODBC

Ответы [ 2 ]

3 голосов
/ 23 апреля 2009

Вы можете проанализировать ваши строковые параметры с помощью этой функции расширения

public static string SqlEncode(string str)
{
    if (str == null) return String.Empty;
    return str.Replace("'","''");
}
3 голосов
/ 23 апреля 2009
Dim s As String = "Michael O'Flatley"
Dim escapedString as String = s.Replace("'", "''")
...