[转]【SqlServer数据类型、C#数据类型、SqlDbType】对应关系及转换
转载自 guke1991 最终编辑 guke1991 // 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数据类型(如: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;
}
// 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;
}
http://chinadforce.com/viewthread.php?tid=1128382
?