现在的位置: 首页 > 综合 > 正文

DbType与Type之间的转换(object)

2013年08月09日 ⁄ 综合 ⁄ 共 1247字 ⁄ 字号 评论关闭

从Type转换到DB

public DbType TypeToDbType(Type t)
{
    DbType dbt;
    try
    {
        dbt = (DbType)Enum.Parse(typeof(DbType), t.Name);
    }
    catch
    {
        dbt = DbType.Object;
    }
    return dbt;
} 

DB转换到Type没有直接的方式,只能通过判断

 Type ConvertType(DbType dbType)
{
    Type toReturn = typeof(DBNull);
 
    switch (dbType)
    {
        case DbType.UInt64:
            toReturn = typeof(UInt64);
            break;
 
        case DbType.Int64:
            toReturn = typeof(Int64);
            break;
 
        case DbType.Int32:
            toReturn = typeof(Int32);
            break;
 
        case DbType.UInt32:
            toReturn = typeof(UInt32);
            break;
 
        case DbType.Single:
            toReturn = typeof(float);
            break;
 
        case DbType.Date:
        case DbType.DateTime:
        case DbType.Time:
            toReturn = typeof(DateTime);
            break;
 
        case DbType.String:
        case DbType.StringFixedLength:
        case DbType.AnsiString:
        case DbType.AnsiStringFixedLength:
            toReturn = typeof(string);
            break;
 
        case DbType.UInt16:
            toReturn = typeof(UInt16);
            break;
 
        case DbType.Int16:
            toReturn = typeof(Int16);
            break;
 
        case DbType.SByte:
            toReturn = typeof(byte);
            break;
 
        case DbType.Object:
            toReturn = typeof(object);
            break;
 
        case DbType.VarNumeric:
        case DbType.Decimal:
            toReturn = typeof(decimal);
            break;
 
        case DbType.Currency:
            toReturn = typeof(double);
            break;
 
        case DbType.Binary:
            toReturn = typeof(byte[]);
            break;
 
        case DbType.Double:
            toReturn = typeof(Double);
            break;
 
        case DbType.Guid:
            toReturn = typeof(Guid);
            break;
 
        case DbType.Boolean:
            toReturn = typeof(bool);
            break;
    }
 
    return toReturn;
}

抱歉!评论已关闭.