Вопрос

У меня есть проект, который создает таблицу из DataTable в таблицу SQL через SMO.

Типы данных столбцов в настоящее время не преобразуются из System.Введите в SMO.DataType.Я могу сделать это с помощью инструкции Case, но я надеялся на более чистое решение.Может быть, что-то, связанное с TypeDescriptor.GetConverter(targetDataType).

Это работает между System.types и SQL.DataTypes, но я не могу преобразовать его в SMO.DataTypes.

Есть какие-нибудь предложения или чаевые?

ТИА

Это было полезно?

Решение

В итоге я использовал оператор Case для обработки преобразования.Работает нормально.

Другие советы

я тоже поступил таким образом.я не рассматривал все случаи, я добавляю тогда, когда мне это нужно.мой метод не очень чистый ...

    public static SqlDbType MappingToSQLType(String CLRTypeName)
    {
        string[] t = CLRTypeName.Split('.');
        for (int i = 0; i <= 31; i++)// there is 31 sqldatatypes
        {
            if (t[1].Equals("Int64") &&
                ((SqlDbType)i).ToString().ToLower().Equals("bigint"))
                return ((SqlDbType)i);
            else if (t[1].Equals("Int32") &&
                ((SqlDbType)i).ToString().ToLower().Equals("int"))
                return ((SqlDbType)i);
            else if (t[1].Equals("Int16") &&
                ((SqlDbType)i).ToString().ToLower().Equals("smallint"))
                return ((SqlDbType)i);
            else if (t[1].Equals("Boolean") &&
                ((SqlDbType)i).ToString().ToLower().Equals("bit"))
                return ((SqlDbType)i);
            else if (t[1].Equals("Double") &&
                ((SqlDbType)i).ToString().ToLower().Equals("float"))
                return ((SqlDbType)i);
            else if (t[1].Equals("Single") &&
                ((SqlDbType)i).ToString().ToLower().Equals("real"))
                return ((SqlDbType)i);
            else if (((SqlDbType)i).ToString().ToLower().Equals(t[1].ToLower()))
                return ((SqlDbType)i);
        }
        return SqlDbType.NVarChar;
    }
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top