Sql2005数据类型与Framework类型的对应关系

 http://blog.csdn.net/zlb789/archive/2009/01/13/3765693.aspx

Sql2005数据类型与Framework类型的对应关系 收藏
Sql2005数据类型与Framework类型的对应关系
Posted on 2007-01-21 17:16 水如烟(LzmTW) 阅读(758) 评论(0)  编辑 收藏 网摘 
Author:水如烟 

通过以下语句获取SqlServer2005的系统数据类型:

SELECT
    identity(int, 0,1) [Column],
    type_name(system_type_id) DataType
INTO #tmp01
FROM  sys.types
WHERE user_type_id < 256
ORDER BY name
;
SELECT
    char(65+[column]) [column],
    DataType
FROM #tmp01
;
DROP TABLE #tmp01
 用此语句加载数据到一个DataTable,据此生成一个创建含有全部系统类型的语句:

CREATE TABLE [dbo].[#tmp02]
(
    [A]    bigint,
    [B]    binary,
    [C]    bit,
    [D]    char,
    [E]    datetime,
    [F]    decimal,
    [G]    float,
    [H]    image,
    [I]    int,
    [J]    money,
    [K]    nchar,
    [L]    ntext,
    [M]    numeric,
    [N]    nvarchar,
    [O]    real,
    [P]    smalldatetime,
    [Q]    smallint,
    [R]    smallmoney,
    [S]    sql_variant,
    [T]    text,
    [U]    timestamp,
    [V]    tinyint,
    [W]    uniqueidentifier,
    [X]    varbinary,
    [Y]    varchar,
    [Z]    xml
)
;
SELECT *
FROM #tmp02
;
DROP TABLE #tmp02
再把它加载到一个DataTable,分析DataColumn的数据类型,并与现有SqlDbType枚举比较,结果如下:

Sql9DbType.bigint           ,SqlDbType.BigInt            ,System.Int64

Sql9DbType.binary           ,SqlDbType.Binary            ,System.Byte[]

Sql9DbType.bit              ,SqlDbType.Bit               ,System.Boolean

Sql9DbType.char             ,SqlDbType.Char              ,System.String

Sql9DbType.datetime         ,SqlDbType.DateTime          ,System.DateTime

Sql9DbType.decimal          ,SqlDbType.Decimal           ,System.Decimal

Sql9DbType.float            ,SqlDbType.Float             ,System.Double

Sql9DbType.image            ,SqlDbType.Image             ,System.Byte[]

Sql9DbType.int              ,SqlDbType.Int               ,System.Int32

Sql9DbType.money            ,SqlDbType.Money             ,System.Decimal

Sql9DbType.nchar            ,SqlDbType.NChar             ,System.String

Sql9DbType.ntext            ,SqlDbType.NText             ,System.String

Sql9DbType.numeric          ,                            ,System.Decimal

Sql9DbType.nvarchar         ,SqlDbType.NVarChar          ,System.String

Sql9DbType.real             ,SqlDbType.Real              ,System.Single

Sql9DbType.smalldatetime    ,SqlDbType.SmallDateTime     ,System.DateTime

Sql9DbType.smallint         ,SqlDbType.SmallInt          ,System.Int16

Sql9DbType.smallmoney       ,SqlDbType.SmallMoney        ,System.Decimal

Sql9DbType.sql_variant      ,                            ,System.Object

Sql9DbType.text             ,SqlDbType.Text              ,System.String

Sql9DbType.timestamp        ,SqlDbType.Timestamp         ,System.Byte[]

Sql9DbType.tinyint          ,SqlDbType.TinyInt           ,System.Byte

Sql9DbType.uniqueidentifier ,SqlDbType.UniqueIdentifier  ,System.Guid

Sql9DbType.varbinary        ,SqlDbType.VarBinary         ,System.Byte[]

Sql9DbType.varchar          ,SqlDbType.VarChar           ,System.String

Sql9DbType.xml              ,SqlDbType.Xml               ,System.String

                            ,Variant                     ,

                            ,Udt                         ,

对比后可以做成以下类:

Namespace LzmTW.uSystem.uData
    Public Enum Sql9DbType
        bigint
        binary
        bit
        [char]
        datetime
        [decimal]
        float
        image
        int
        money
        nchar
        ntext
        numeric
        nvarchar
        real
        smalldatetime
        smallint
        smallmoney
        sql_variant
        text
        timestamp
        tinyint
        uniqueidentifier
        varbinary
        varchar
        xml
        ''' <summary>
        ''' 仅作参考,实际无此类型
        ''' </summary>
        Udt
    End Enum
End Namespace
 

Namespace LzmTW.uSystem.uData
    Public Class Convert
        Private Sub New()
        End Sub

        Public Shared Function ToSqlDbType(ByVal type As Sql9DbType) As SqlDbType
            Select Case type
                Case Sql9DbType.bigint
                    Return SqlDbType.BigInt

                Case Sql9DbType.binary
                    Return SqlDbType.Binary

                Case Sql9DbType.bit
                    Return SqlDbType.Bit

                Case Sql9DbType.char
                    Return SqlDbType.Char

                Case Sql9DbType.datetime
                    Return SqlDbType.DateTime

                Case Sql9DbType.decimal
                    Return SqlDbType.Decimal

                Case Sql9DbType.float
                    Return SqlDbType.Float

                Case Sql9DbType.image
                    Return SqlDbType.Image

                Case Sql9DbType.int
                    Return SqlDbType.Int

                Case Sql9DbType.money
                    Return SqlDbType.Money

                Case Sql9DbType.nchar
                    Return SqlDbType.NChar

                Case Sql9DbType.ntext
                    Return SqlDbType.NText

                Case Sql9DbType.numeric
                    Return SqlDbType.Decimal

                Case Sql9DbType.nvarchar
                    Return SqlDbType.NVarChar

                Case Sql9DbType.real
                    Return SqlDbType.Real

                Case Sql9DbType.smalldatetime
                    Return SqlDbType.SmallDateTime

                Case Sql9DbType.smallint
                    Return SqlDbType.SmallInt

                Case Sql9DbType.smallmoney
                    Return SqlDbType.SmallMoney

                Case Sql9DbType.sql_variant
                    Return SqlDbType.VarBinary

                Case Sql9DbType.text
                    Return SqlDbType.Text

                Case Sql9DbType.timestamp
                    Return SqlDbType.Timestamp

                Case Sql9DbType.tinyint
                    Return SqlDbType.TinyInt

                Case Sql9DbType.uniqueidentifier
                    Return SqlDbType.UniqueIdentifier

                Case Sql9DbType.varbinary
                    Return SqlDbType.VarBinary

                Case Sql9DbType.varchar
                    Return SqlDbType.VarChar

                Case Sql9DbType.xml
                    Return SqlDbType.Xml

                Case Sql9DbType.Udt
                    Return SqlDbType.Udt
            End Select
        End Function

        Public Shared Function ToSql9DbType(ByVal type As SqlDbType) As Sql9DbType
            Select Case type
                Case SqlDbType.BigInt
                    Return Sql9DbType.bigint

                Case SqlDbType.Binary
                    Return Sql9DbType.binary

                Case SqlDbType.Bit
                    Return Sql9DbType.bit

                Case SqlDbType.Char
                    Return Sql9DbType.char

                Case SqlDbType.DateTime
                    Return Sql9DbType.datetime

                Case SqlDbType.Decimal
                    Return Sql9DbType.decimal

                    'Case SqlDbType.Decimal
                    'Return Sql9DbType.numeric

                Case SqlDbType.Float
                    Return Sql9DbType.float

                Case SqlDbType.Image
                    Return Sql9DbType.image

                Case SqlDbType.Int
                    Return Sql9DbType.int

                Case SqlDbType.Money
                    Return Sql9DbType.money

                Case SqlDbType.NChar
                    Return Sql9DbType.nchar

                Case SqlDbType.NText
                    Return Sql9DbType.ntext

                Case SqlDbType.NVarChar
                    Return Sql9DbType.nvarchar

                Case SqlDbType.Real
                    Return Sql9DbType.real

                Case SqlDbType.SmallDateTime
                    Return Sql9DbType.smalldatetime

                Case SqlDbType.SmallInt
                    Return Sql9DbType.smallint

                Case SqlDbType.SmallMoney
                    Return Sql9DbType.smallmoney

                Case SqlDbType.Variant
                    Return Sql9DbType.sql_variant

                Case SqlDbType.Text
                    Return Sql9DbType.text

                Case SqlDbType.Timestamp
                    Return Sql9DbType.timestamp

                Case SqlDbType.TinyInt
                    Return Sql9DbType.tinyint

                Case SqlDbType.UniqueIdentifier
                    Return Sql9DbType.uniqueidentifier

                Case SqlDbType.VarBinary
                    Return Sql9DbType.varbinary

                Case SqlDbType.VarChar
                    Return Sql9DbType.varchar

                Case SqlDbType.Xml
                    Return Sql9DbType.xml

                Case SqlDbType.Udt
                    Return Sql9DbType.Udt

            End Select
        End Function

        Public Shared Function ToClassType(ByVal type As Sql9DbType) As Type
            Select Case type
                Case Sql9DbType.bigint
                    Return GetType(System.Int64)

                Case Sql9DbType.binary
                    Return GetType(System.Byte())

                Case Sql9DbType.bit
                    Return GetType(System.Boolean)

                Case Sql9DbType.char
                    Return GetType(System.String)

                Case Sql9DbType.datetime
                    Return GetType(System.DateTime)

                Case Sql9DbType.decimal
                    Return GetType(System.Decimal)

                Case Sql9DbType.float
                    Return GetType(System.Double)

                Case Sql9DbType.image
                    Return GetType(System.Byte())

                Case Sql9DbType.int
                    Return GetType(System.Int32)

                Case Sql9DbType.money
                    Return GetType(System.Decimal)

                Case Sql9DbType.nchar
                    Return GetType(System.String)

                Case Sql9DbType.ntext
                    Return GetType(System.String)

                Case Sql9DbType.numeric
                    Return GetType(System.Decimal)

                Case Sql9DbType.nvarchar
                    Return GetType(System.String)

                Case Sql9DbType.real
                    Return GetType(System.Single)

                Case Sql9DbType.smalldatetime
                    Return GetType(System.DateTime)

                Case Sql9DbType.smallint
                    Return GetType(System.Int16)

                Case Sql9DbType.smallmoney
                    Return GetType(System.Decimal)

                Case Sql9DbType.sql_variant
                    Return GetType(System.Object)

                Case Sql9DbType.text
                    Return GetType(System.String)

                Case Sql9DbType.timestamp
                    Return GetType(System.Byte())

                Case Sql9DbType.tinyint
                    Return GetType(System.Byte)

                Case Sql9DbType.uniqueidentifier
                    Return GetType(System.Guid)

                Case Sql9DbType.varbinary
                    Return GetType(System.Byte())

                Case Sql9DbType.varchar
                    Return GetType(System.String)

                Case Sql9DbType.xml
                    Return GetType(System.String)

                Case Sql9DbType.Udt
                    Return GetType(System.Object)

                Case Else
                    Return GetType(System.Object)
            End Select
        End Function

        Public Shared Function ToClassType(ByVal type As SqlDbType) As Type
            Select Case type
                Case SqlDbType.BigInt
                    Return GetType(System.Int64)

                Case SqlDbType.Binary
                    Return GetType(System.Byte())

                Case SqlDbType.Bit
                    Return GetType(System.Boolean)

                Case SqlDbType.Char
                    Return GetType(System.String)

                Case SqlDbType.DateTime
                    Return GetType(System.DateTime)

                Case SqlDbType.Decimal
                    Return GetType(System.Decimal)

                Case SqlDbType.Float
                    Return GetType(System.Double)

                Case SqlDbType.Image
                    Return GetType(System.Byte())

                Case SqlDbType.Int
                    Return GetType(System.Int32)

                Case SqlDbType.Money
                    Return GetType(System.Decimal)

                Case SqlDbType.NChar
                    Return GetType(System.String)

                Case SqlDbType.NText
                    Return GetType(System.String)

                Case SqlDbType.NVarChar
                    Return GetType(System.String)

                Case SqlDbType.Real
                    Return GetType(System.Single)

                Case SqlDbType.SmallDateTime
                    Return GetType(System.DateTime)

                Case SqlDbType.SmallInt
                    Return GetType(System.Int16)

                Case SqlDbType.SmallMoney
                    Return GetType(System.Decimal)

                Case SqlDbType.Variant
                    Return GetType(System.Object)

                Case SqlDbType.Text
                    Return GetType(System.String)

                Case SqlDbType.Timestamp
                    Return GetType(System.Byte())

                Case SqlDbType.TinyInt
                    Return GetType(System.Byte)

                Case SqlDbType.UniqueIdentifier
                    Return GetType(System.Guid)

                Case SqlDbType.VarBinary
                    Return GetType(System.Byte())

                Case SqlDbType.VarChar
                    Return GetType(System.String)

                Case SqlDbType.Xml
                    Return GetType(System.String)

                Case SqlDbType.Udt
                    Return GetType(System.Object)

                Case Else
                    Return GetType(System.Object)
            End Select
        End Function
    End Class
End Namespace

 

http://blog.csdn.net/Adi_liu/archive/2009/10/15/4676325.aspx

SQL Server 2005 数据类型和.Net数据类型的对应关系 收藏
 

SQL Server 2005 数据类型  .NET Framework 数据类型  LINQ 数据类型 
bigint
 System.Int64
 long
 
binary
 System.Byte[]
 System.Data.Linq.Binary
 
bit
 System.Boolean
 bool
 
char
 System.String
 string
 
datetime
 System.DateTime
 System.DateTime
 
decimal
 System.Decimal
 decimal
 
float
 System.Double
 double
 
image
 System.Byte[]
 System.Data.Linq.Binary
 
int
 System.Int32
 int
 
money
 System..Decimal
 decimal
 
nchar
 System.String
 string
 
ntext
 System.String
 string
 
numeric
 System.Decimal
 decimal
 
nvarchar
 System.String
 string
 
real
 System.Single
 float
 
smalltime 
 System.DateTime
 System.DateTime
 
smallint
 System.Int16
 short
 
smallmoney 
 System.Decimal
 decimal
 
sql_variant
 System.Object
 object
 
text 
 System.String
 string
 
timestamp
 System.Byte[]
 System.Data.Linq.Binary
 
tinyint
 System.Byte
 byte
 
uniqueidentifier
 System.Guid
 System.Guid
 
varbinary
 System.Byte[]
 System.Data.Linq.Binary
 
varchar
 System.String
 string
 
xml
 System.String
 System.Xml.Linq.XElement
 


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Adi_liu/archive/2009/10/15/4676325.aspx

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值