日期:2014-05-16  浏览次数:20453 次

[转]【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 = SqlDb