类型映射

神通数据库 .NET DATA PROVIDER驱动支持大多数由.net 规范所要求的类型.
在类型映射中,我们将讨论.NET类型、PROVIDER类型以及后台数据库类型是如何进行相互映射的.
比如前台的String对应于PROVIDER类型中的那种,又对应于后台数据库中的那种类型.

数据类型信息

序号 类型 描述 有效范围
1 tinyint 整型数据 [-128,127]
2 smallint 整型数据 [-32768, 32767]
3 int 整型数据 [-2147483648, 2147483647 ]
4 bigint 整型数据 [-922 3372036854775808, 922 3372036854775807]
5 bit 固 定长度的位串数据 1,0 (最大长度 限制是8*8000bit)
6 numeric 固定精度和 小数位的数字数据  
7 decimal 固定精度和 小数位的数字数据  
8 real 浮点精度数字 [-3.4E+38, 3.4E+38]
9 double precision 浮点双精度数 [2.225073858507 2014e-308,1.79769 31348623158e+308]
10 float 浮点精度数字 [-1E+308, 1E+308]
11 char 固 定长度的字符数据 最大 长度为8000个字符
12 varchar 可 变长度的字符数据 最大 长度为8000个字符
13 text 可 变长度的字符数据 最大长度为16 M(16777215个字节)
14 binary 定长的二进制字串 最大长度为8000
15 varbinary 变长的二进制字串 最大长度为8000
16 boolean 布尔类型  
17 date 日期  
18 time 时间  
19 timestamp 时间戳  
20 clob 字符型大对象类型 理论上没有 限制,可以达到4个G
21 blob 二进制大对象类型 理论上没有 限制,可以达到4个G

数据类型映射表

神通数据库数据类型、PROVIDER类型和标准C#类型之间的映射

序号 数据库类型 DbType 类型 Type类型 Osc arDbType类型
1 tinyint DbType.SByte Byte OscarDb Type.TinyInt
2 smallint DbType.Int16 Int16 OscarDbT ype.SmallInt
3 int DbType.Int32 Int32 OscarDb Type.Integer
4 bigint DbType.Int64 Long/Int64 OscarD bType.BigInt
5 bit Db Type.Boolean Boolean OscarDb Type.Boolean
6 numeric Db Type.Decimal Decimal OscarDb Type.Decimal
7 decimal Db Type.Decimal Decimal OscarDb Type.Decimal
8 real D bType.Single Single Osca rDbType.Real
9 double precision D bType.Double double OscarD bType.Double
10 float D bType.Double double OscarD bType.Double
11 char D bType.String Char Osca rDbType.Char
12 varchar D bType.String String OscarDb Type.VarChar
13 text D bType.String String Osca rDbType.Text
14 binary D bType.Binary Byte[] OscarD bType.Binary
15 varbinary D bType.Binary Byte[] OscarD bType.Binary
16 boolean Db Type.Boolean Bool OscarDb Type.Boolean
17 date DbType.DATE DateTime Osca rDbType.Date
18 time DbType.TIME DateTime Osca rDbType.Time
19 timestamp DbT ype.DateTime DateTime OscarDbTy pe.TimeStamp
20 clob D bType.String String Osca rDbType.Clob
21 blob D bType.Binary Byte[] Osca rDbType.Blob
22 timestamptz DbType.Da teTimeOffset Da teTimeOffset OscarDbType .TimestampTZ
23 timetz DbType.TIME Da teTimeOffset OscarD bType.TimeTZ
24 interval D bType.Object TimeSpan OscarDbT ype.Interval
25 interval year to month D bType.String String OscarDbType .Intervalytm
26 interval day to second D bType.Object TimeSpan OscarDbType .Intervaldts
  • 关于binary类型,如果用户插入的数据没有达到定义的长度,后台数据库会自动补0,故最后读出的byte数组的长度为定义时的长度.
  • 关于char类型,如果用户插入的数据没有达到定义的长度,后台数据库会自动补空格,故最后读出的String对象的长度为定义时的长度.
引用