DbType,OleDbType,SqlDbType区别
DbType | 说明 | OleDbType | 说明 | SqlDbType | 说明 | |||
Boolean | 简单类型,表示 true 或 false 的布尔值。 | Boolean | 布尔值 (DBTYPE_BOOL)。它映射到 Boolean。 | Bit | Boolean。无符号数值,可以是 0、1 或 nullNothingnullptrnull 引用(在 Visual Basic 中为 Nothing)。 | |||
SByte | 整型,表示值介于 -128 到 127 之间的有符号 8 位整数。 | TinyInt | 8 位带符号的整数 (DBTYPE_I1)。它映射到 SByte。 | |||||
Byte | 一个 8 位无符号整数,范围在 0 到 255 之间。 | UnsignedTinyInt | 8 位无符号整数 (DBTYPE_UI1)。它映射到 Byte。 | TinyInt | Byte。8 位的无符号整数。 | |||
Int16 | 整型,表示值介于 -32768 到 32767 之间的有符号 16 位整数。 | SmallInt | 16 位带符号的整数 (DBTYPE_I2)。它映射到 Int16。 | SmallInt | Int16。16 位的有符号整数。 | |||
Int32 | 整型,表示值介于 -2147483648 到 2147483647 之间的有符号 32 位整数。 | Integer | 32 位带符号的整数 (DBTYPE_I4)。它映射到 Int32。 | Int | Int32。32 位的有符号整数。 | |||
Int64 | 整型,表示值介于 -9223372036854775808 到 9223372036854775807 之间的有符号 64 位整数。 | BigInt | 64 位带符号的整数 (DBTYPE_I8)。它映射到 Int64。 | BigInt | Int64。64 位的有符号整数。 | |||
UInt16 | 整型,表示值介于 0 到 65535 之间的无符号 16 位整数。 | UnsignedSmallInt | 16 位无符号整数 (DBTYPE_UI2)。它映射到 UInt16。 | |||||
UInt32 | 整型,表示值介于 0 到 4294967295 之间的无符号 32 位整数。 | UnsignedInt | 32 位无符号整数 (DBTYPE_UI4)。它映射到 UInt32。 | |||||
UInt64 | 整型,表示值介于 0 到 18446744073709551615 之间的无符号 64 位整数。 | UnsignedBigInt | 64 位无符号整数 (DBTYPE_UI8)。它映射到 UInt64。 | |||||
Single | 浮点型,表示从大约 1.5 x 10 -45 到 3.4 x 10 38 且精度为 7 位的值。 | Single | 浮点数字,范围在 -3.40E +38 到 3.40E +38 之间 (DBTYPE_R4)。它映射到 Single。 | Real | Single。-3.40E +38 到 3.40E +38 范围内的浮点数。 | |||
Currency | 货币值,范围在 -2 63(即 -922,337,203,685,477.5808)到 2 63 -1(即 +922,337,203,685,477.5807)之间,精度为千分之十个货币单位。 | Currency | 一个货币值,范围在 -2 63(或 -922,337,203,685,477.5808)到 2 63 -1(或 +922,337,203,685,477.5807)之间,精度为千分之十个货币单位 (DBTYPE_CY)。它映射到 Decimal。 | Money | Decimal。货币值,范围在 -2 63(即 -9,223,372,036,854,775,808)到 2 63 -1(即 +9,223,372,036,854,775,807)之间,精度为千分之十个货币单位。 | |||
SmallMoney | Decimal。货币值,范围在 -214,748.3648 到 +214,748.3647 之间,精度为千分之十个货币单位。 | |||||||
Decimal | 简单类型,表示从 1.0 x 10 -28 到大约 7.9 x 10 28 且有效位数为 28 到 29 位的值。 | Decimal | 定点精度和小数位数数值,范围在 -10 38 -1 和 10 38 -1 之间 (DBTYPE_DECIMAL)。它映射到 Decimal。 | Decimal | Decimal。固定精度和小数位数数值,在 -10 38 -1 和 10 38 -1 之间。 | |||
Double | 浮点型,表示从大约 5.0 x 10 -324 到 1.7 x 10 308 且精度为 15 到 16 位的值。 | Double | 浮点数字,范围在 -1.79E +308 到 1.79E +308 之间 (DBTYPE_R8)。它映射到 Double。 | Float | Double。-1.79E +308 到 1.79E +308 范围内的浮点数。 | |||
Numeric | 具有定点精度和小数位数的精确数值 (DBTYPE_NUMERIC)。它映射到 Decimal。 | |||||||
VarNumeric | 变长数值。 | VarNumeric | 变长数值(只限 OleDbParameter)。它映射到 Decimal。 | |||||
Guid | 全局唯一标识符(或 GUID)。 | Guid | 全局唯一标识符(或 GUID) (DBTYPE_GUID)。它映射到 Guid。 | UniqueIdentifier | Guid。全局唯一标识符(或 GUID)。 | |||
Binary | 二进制数据的可变长度流,范围在 1 到 8,000 个字节之间。 | Binary | 二进制数据流 (DBTYPE_BYTES)。它映射到 Byte 类型的 Array。 | Binary | Byte 类型的 Array。二进制数据的固定长度流,范围在 1 到 8,000 个字节之间。 | |||
VarBinary | 二进制数据的变长流(只限 OleDbParameter)。它映射到 Byte 类型的 Array。 | VarBinary | Byte 类型的 Array。二进制数据的可变长度流,范围在 1 到 8,000 个字节之间。如果字节数组大于 8,000 个字节,隐式转换会失败。在使用比 8,000 个字节大的字节数组时,请显式设置对象。 | |||||
LongVarBinary | 长的二进制值(只限 OleDbParameter)。它映射到 Byte 类型的 Array。 | |||||||
Image | Byte 类型的 Array。二进制数据的可变长度流,范围在 0 到 2 31 -1(即 2,147,483,647)字节之间。 | |||||||
AnsiStringFixedLength | 非 Unicode 字符的固定长度流。 | Char | 字符串 (DBTYPE_STR)。它映射到 String。 | Char | String。非 Unicode 字符的固定长度流,范围在 1 到 8,000 个字符之间。 | |||
AnsiString | 非 Unicode 字符的可变长度流,范围在 1 到 8,000 个字符之间。 | VarChar | 非 Unicode 字符的变长流(只限 OleDbParameter)。它映射到 String。 | VarChar | String。非 Unicode 字符的可变长度流,范围在 1 到 8,000 个字符之间。 | |||
StringFixedLength | Unicode 字符的定长串。 | LongVarChar | 长的字符串值(只限 OleDbParameter)。它映射到 String。 | NChar | String。Unicode 字符的固定长度流,范围在 1 到 4,000 个字符之间。 | |||
String | 表示 Unicode 字符串的类型。 | LongVarWChar | 长的以 null 终止的 Unicode 字符串值(只限 OleDbParameter)。它映射到 String。 | NVarChar | String。Unicode 字符的可变长度流,范围在 1 到 4,000 个字符之间。如果字符串大于 4,000 个字符,隐式转换会失败。在使用比 4,000 个字符更长的字符串时,请显式设置对象。 | |||
VarWChar | 长可变、以 null 终止的 Unicode 字符流(只限 OleDbParameter)。它映射到 String。 | Text | String。非 Unicode 数据的可变长度流,最大长度为 2 31 -1(即 2,147,483,647)个字符。 | |||||
WChar | 以 null 终止的 Unicode 字符流 (DBTYPE_WSTR)。它映射到 String。 | NText | String。Unicode 数据的可变长度流,最大长度为 2 30 - 1(即 1,073,741,823)个字符。 | |||||
BSTR | 以 null 终止的 Unicode 字符串 (DBTYPE_BSTR)。它映射到 String。 | |||||||
DateTime | 表示一个日期和时间值的类型。 | Date | 日期数据,存储为双精度型 (DBTYPE_DATE)。整数部分是自 1899 年 12 月 30 日以来的天数,而小数部分是不足一天的部分。它映射到 DateTime。 | DateTime | DateTime。日期和时间数据,值范围从 1753 年 1 月 1 日到 9999 年 12 月 31 日,精度为 3.33 毫秒。 | |||
DateTime2 | 日期和时间数据。日期值范围从公元 1 年 1 月 1 日到公元 9999 年 12 月 31 日。时间值范围从 00:00:00 到 23:59:59.9999999,精度为 100 毫微秒。 | DBDate | 格式为 yyyymmdd 的日期数据 (DBTYPE_DBDATE)。它映射到 DateTime。 | DateTime2 | 日期和时间数据。日期值范围从公元 1 年 1 月 1 日到公元 9999 年 12 月 31 日。时间值范围从 00:00:00 到 23:59:59.9999999,精度为 100 毫微秒。 | |||
DBTimeStamp | 格式为 yyyymmddhhmmss 的日期和时间数据 (DBTYPE_DBTIMESTAMP)。它映射到 DateTime。 | |||||||
Filetime | 64 位无符号整数,表示自 1601 年 1 月 1 日以来 100 个纳秒间隔的数字 (DBTYPE_FILETIME)。它映射到 DateTime。 | |||||||
SmallDateTime | DateTime。日期和时间数据,值范围从 1900 年 1 月 1 日到 2079 年 6 月 6 日,精度为 1 分钟。 | |||||||
DateTimeOffset | 显示时区的日期和时间数据。日期值范围从公元 1 年 1 月 1 日到公元 9999 年 12 月 31 日。时间值范围从 00:00:00 到 23:59:59.9999999,精度为 100 毫微秒。时区值范围从 -14:00 到 +14:00。 | DateTimeOffset | 显示时区的日期和时间数据。日期值范围从公元 1 年 1 月 1 日到公元 9999 年 12 月 31 日。时间值范围从 00:00:00 到 23:59:59.9999999,精度为 100 毫微秒。时区值范围从 -14:00 到 +14:00。 | |||||
DBTime | 格式为 hhmmss 的时间数据 (DBTYPE_DBTIME)。它映射到 TimeSpan。 | Timestamp | Byte 类型的 Array。自动生成的二进制数,并保证其在数据库中唯一。timestamp 通常用作对表中各行的版本进行标记的机制。存储大小为 8 字节。 | |||||
Date | 表示日期值的类型。 | Date | 日期数据,值范围从公元 1 年 1 月 1 日到公元 9999 年 12 月 31 日。 | |||||
Time | 表示时间值的类型。 | Time | 基于 24 小时制的时间数据。时间值范围从 00:00:00 到 23:59:59.9999999,精度为 100 毫微秒。 | |||||
Object | 常规类型,表示任何没有由其他 DbType 值显式表示的引用或值类型。 | Variant | 可包含数字、字符串、二进制或日期数据以及特殊值 Empty 和 Null 的特殊数据类型 (DBTYPE_VARIANT)。如果未指定任何其他类型,则假定为该类型。它映射到 Object。 | Variant | Object。特殊数据类型,可以包含数值、字符串、二进制或日期数据,以及 SQL Server 值 Empty 和 Null,后两个值在未声明其他类型的情况下采用。 | |||
PropVariant | 自动化 PROPVARIANT (DBTYPE_PROP_VARIANT)。它映射到 Object。 | |||||||
Xml | XML 文档或片段的分析表示。 | Xml | XML 值。使用 GetValue 方法或 Value 属性获取字符串形式的 XML,或通过调用 CreateReader 方法获取 XmlReader 形式的 XML。 | |||||
Udt | SQL Server 2005 用户定义的类型 (UDT)。 | |||||||
Structured | 指定表值参数中包含的构造数据的特殊数据类型。 | |||||||
IUnknown | 指向 IUnknown 接口的指针 (DBTYPE_UNKNOWN)。它映射到 Object。 | |||||||
IDispatch | 指向 IDispatch 接口的指针 (DBTYPE_IDISPATCH)。它映射到 Object。 | |||||||
Error | 32 位错误代码 (DBTYPE_ERROR)。它映射到 Exception。 | |||||||
Empty | 无任何值 (DBTYPE_EMPTY)。 |