Определить, для каких типов данных SQL требуется заключать значение в кавычки?

Мне нужно послать команду в базу данных. Я знаю имена и типы данных всех полей в затронутой таблице, и мне нужно сгенерировать команду, используя их. Моя единственная проблема заключается в том, чтобы определить, какие значения столбцов относятся к типам данных, которые требуют кавычек в TSQL -, например, если поле было строкой Hello Worldтипа varchar, мне нужно было бы заключить его в кавычки, но если бы это было an int, 5, мне не нужно было бы его цитировать.

Я мог бы использовать что-то вроде следующего кода, но он кажется очень неэффективным. Может ли кто-нибудь указать мне лучший способ сделать это -, возможно, используя встроенный SQL-сервер или функцию C#?

public string QuoteStringIfDatatypeRequires(string columnName)
{
    if (DataTypes[columnName].Contains("date") || DataTypes[columnName].Contains("time") ||
        DataTypes[columnName].Contains("char") || DataTypes[columnName].Contains("text") ||
        DataTypes[columnName].Contains("binary") || DataTypes[columnName].Contains("image"))
    {
        return "'" + columnName + "'";
    }

    return columnName;
}
5
задан abatishchev 20 April 2012 в 05:20
поделиться