标签:
Parameter 的类型是 .NET Framework 数据提供程序特定的。如果指定类型,则在向数据源传递 Parameter 的值之前,将该值转换为 .NET Framework 数据提供程序类型。也可以通过通用的方式指定 Parameter 的类型,方法是将 Parameter 对象的 DbType 属性设置为特定的 DbType。
Parameter 对象的 .NET Framework 数据提供程序类型将从 Parameter 对象的 Value 的 .NET Framework 类型来推断,或从 Parameter 对象的 DbType 来推断。下表显示了根据作为 Parameter 值传递的对象或指定的 DbType 推断出的 Parameter 类型。
.NET Framework 类型 | System.Data.DbType | SqlDbType | OleDbType | OdbcType | OracleType |
---|---|---|---|---|---|
bool |
Boolean |
Bit |
Boolean |
Bit |
Byte |
byte |
Byte |
TinyInt |
UnsignedTinyInt |
TinyInt |
Byte |
byte[] |
Binary |
VarBinary. 如果字节数组大于 VarBinary 的最大大小(8000 字节),此隐式转换将失败。对于大于 8000 字节的字节数组,请显式设置 SqlDbType。 |
VarBinary |
Binary |
Raw |
char |
不支持从 char 推断 SqlDbType。 |
Char |
Char |
Byte |
|
DateTime |
DateTime |
DateTime |
DBTimeStamp |
DateTime |
DateTime |
Decimal |
Decimal |
Decimal |
Decimal |
Numeric |
Number |
double |
Double |
Float |
Double |
Double |
Double |
float |
Single |
Real |
Single |
Real |
Float |
Guid |
Guid |
UniqueIdentifier |
Guid |
UniqueIdentifier |
Raw |
Int16 |
Int16 |
SmallInt |
SmallInt |
SmallInt |
Int16 |
Int32 |
Int32 |
Int |
Int |
Int |
Int32 |
Int64 |
Int64 |
BitInt |
BigInt |
BigInt |
Number |
object |
Object |
Variant |
Variant |
不支持从 Object 推断 OdbcType。 |
Blob |
string |
String |
NVarChar。如果字符串大于 NVarChar 的最大大小(4000 个字符),此隐式转换将失败。对于大于 4000 个字符的字符串,请显式设置 SqlDbType。 |
VarWChar |
NVarChar |
NVarChar |
TimeSpan |
Time |
不支持从 TimeSpan 推断 SqlDbType。 |
DBTime |
Time |
DateTime |
UInt16 |
UInt16 |
不支持从 UInt16 推断 SqlDbType。 |
UnsignedSmallInt |
Int |
UInt16 |
UInt32 |
UInt32 |
不支持从 UInt32 推断 SqlDbType。 |
UnsignedInt |
BigInt |
UInt32 |
UInt64 |
UInt64 |
不支持从 UInt64 推断 SqlDbType。 |
UnsignedBigInt |
Numeric |
Number |
AnsiString |
VarChar |
VarChar |
VarChar |
VarChar |
|
AnsiStringFixedLength |
Char |
Char |
Char |
Char |
|
Currency |
Money |
Currency |
不支持从 Currency 推断 OdbcType。 |
Number |
|
Date |
不支持从 Date 推断 SqlType。 |
DBDate |
Date |
DateTime |
|
SByte |
不支持从 SByte 推断 SqlType。 |
TinyInt |
不支持从 SByte 推断 OdbcType。 |
SByte |
|
StringFixedLength |
NChar |
WChar |
NChar |
NChar |
|
Time |
不支持从 Time 推断 SqlType。 |
DBTime |
Time |
DateTime |
|
VarNumeric 推断 OdbcType。 |
Number |
注意 |
---|
随 .NET Framework 1.0 版提供的 .NET Framework 数据提供程序不验证 Decimal 参数值的精度和小数位数是否有效,这可能会导致截断的数据被插入数据源。如果您使用的是 .NET Framework 1.0 版,请在设置该参数值之前,验证 Decimal 值的精度和小数位数是否有效。在 .NET Framework 1.1 版及更高版本中,当用无效的精度设置 Decimal 参数值时会引发异常。但仍将截断超出 Decimal 参数小数位数的小数位数值。 |
注意 |
---|
对于 .NET Framework 1.0 以及更高版本,可以对 System.Data.SqlClient 使用 System.Data.SqlTypes。有关更多信息,请参见使用 SqlTypes。 |
标签:
原文地址:http://www.cnblogs.com/zxktxj/p/4633053.html