SqlDbType转换为C#数据类型

// sql server数据类型(如:varchar)
// 转换为SqlDbType类型
public static SqlDbType SqlTypeString2SqlType(string sqlTypeString)
{
    SqlDbType dbType = SqlDbType.Variant;//默认为Object

    switch (sqlTypeString)
    {
        case "int":
            dbType = SqlDbType.Int;
            break;
        case "varchar":
            dbType = SqlDbType.VarChar;
            break;
        case "bit":
            dbType = SqlDbType.Bit;
            break;
        case "datetime":
            dbType = SqlDbType.DateTime;
            break;
        case "decimal":
            dbType = SqlDbType.Decimal;
            break;
        case "float":
            dbType = SqlDbType.Float;
            break;
        case "image":
            dbType = SqlDbType.Image;
            break;
        case "money":
            dbType = SqlDbType.Money;
            break;
        case "ntext":
            dbType = SqlDbType.NText;
            break;
        case "nvarchar":
            dbType = SqlDbType.NVarChar;
            break;
        case "smalldatetime":
            dbType = SqlDbType.SmallDateTime;
            break;
        case "smallint":
            dbType = SqlDbType.SmallInt;
            break;
        case "text":
            dbType = SqlDbType.Text;
            break;
        case "bigint":
            dbType = SqlDbType.BigInt;
            break;
        case "binary":
            dbType = SqlDbType.Binary;
            break;
        case "char":
            dbType = SqlDbType.Char;
            break;
        case "nchar":
            dbType = SqlDbType.NChar;
            break;
        case "numeric":
            dbType = SqlDbType.Decimal;
            break;
        case "real":
            dbType = SqlDbType.Real;
            break;
        case "smallmoney":
            dbType = SqlDbType.SmallMoney;
            break;
        case "sql_variant":
            dbType = SqlDbType.Variant;
            break;
        case "timestamp":
            dbType = SqlDbType.Timestamp;
            break;
        case "tinyint":
            dbType = SqlDbType.TinyInt;
            break;
        case "uniqueidentifier":
            dbType = SqlDbType.UniqueIdentifier;
            break;
        case "varbinary":
            dbType = SqlDbType.VarBinary;
            break;
        case "xml":
            dbType = SqlDbType.Xml;
            break;
    }
    return dbType;
}

// SqlDbType转换为C#数据类型
public static Type SqlType2CsharpType(SqlDbType sqlType)
{
    switch (sqlType)
    {
        case SqlDbType.BigInt:
            return typeof(Int64);
        case SqlDbType.Binary:
            return typeof(Object);
        case SqlDbType.Bit:
            return typeof(Boolean);
        case SqlDbType.Char:
            return typeof(String);
        case SqlDbType.DateTime:
            return typeof(DateTime);
        case SqlDbType.Decimal:
            return typeof(Decimal);
        case SqlDbType.Float:
            return typeof(Double);
        case SqlDbType.Image:
            return typeof(Object);
        case SqlDbType.Int:
            return typeof(Int32);
        case SqlDbType.Money:
            return typeof(Decimal);
        case SqlDbType.NChar:
            return typeof(String);
        case SqlDbType.NText:
            return typeof(String);
        case SqlDbType.NVarChar:
            return typeof(String);
        case SqlDbType.Real:
            return typeof(Single);
        case SqlDbType.SmallDateTime:
            return typeof(DateTime);
        case SqlDbType.SmallInt:
            return typeof(Int16);
        case SqlDbType.SmallMoney:
            return typeof(Decimal);
        case SqlDbType.Text:
            return typeof(String);
        case SqlDbType.Timestamp:
            return typeof(Object);
        case SqlDbType.TinyInt:
            return typeof(Byte);
        case SqlDbType.Udt://自定义的数据类型
            return typeof(Object);
        case SqlDbType.UniqueIdentifier:
            return typeof(Object);
        case SqlDbType.VarBinary:
            return typeof(Object);
        case SqlDbType.VarChar:
            return typeof(String);
        case SqlDbType.Variant:
            return typeof(Object);
        case SqlDbType.Xml:
            return typeof(Object);
        default:
            return null;
    }
}

// sql server中的数据类型,转换为C#中的类型类型
public static Type SqlTypeString2CsharpType(string sqlTypeString)
{
    SqlDbType dbTpe = SqlTypeString2SqlType(sqlTypeString);

    return SqlType2CsharpType(dbTpe);
}

// 将sql server中的数据类型,转化为C#中的类型的字符串
public static string SqlTypeString2CsharpTypeString(string sqlTypeString)
{
    Type type = SqlTypeString2CsharpType(sqlTypeString);

    return type.Name;
}


评论: 0 | 引用: 0 | 查看次数: 7087
发表评论
登录后再发表评论!