This topic has not yet been rated - Rate this topic

OdbcType Enumeration

Specifies the data type of a field, property, for use in an OdbcParameter.

Namespace:  System.Data.Odbc
Assembly:  System.Data (in System.Data.dll)
public enum OdbcType
Member name Description
BigInt Exact numeric value with precision 19 (if signed) or 20 (if unsigned) and scale 0 (signed: –2[63] <= n <= 2[63] – 1, unsigned:0 <= n <= 2[64] – 1) (SQL_BIGINT). This maps to Int64.
Binary A stream of binary data (SQL_BINARY). This maps to an Array of type Byte.
Bit Single bit binary data (SQL_BIT). This maps to Boolean.
Char A fixed-length character string (SQL_CHAR). This maps to String.
DateTime Date data in the format yyyymmddhhmmss (SQL_TYPE_TIMESTAMP). This maps to DateTime.
Decimal Signed, exact, numeric value with a precision of at least p and scale s, where 1 <= p <= 15 and s <= p. The maximum precision is driver-specific (SQL_DECIMAL). This maps to Decimal.
Numeric Signed, exact, numeric value with a precision p and scale s, where 1 <= p <= 15, and s <= p (SQL_NUMERIC). This maps to Decimal.
Double Signed, approximate, numeric value with a binary precision 53 (zero or absolute value 10[–308] to 10[308]) (SQL_DOUBLE). This maps to Double.
Image Variable length binary data. Maximum length is data source–dependent (SQL_LONGVARBINARY). This maps to an Array of type Byte.
Int Exact numeric value with precision 10 and scale 0 (signed: –2[31] <= n <= 2[31] – 1, unsigned:0 <= n <= 2[32] – 1) (SQL_INTEGER). This maps to Int32.
NChar Unicode character string of fixed string length (SQL_WCHAR). This maps to String.
NText Unicode variable-length character data. Maximum length is data source–dependent. (SQL_WLONGVARCHAR). This maps to String.
NVarChar A variable-length stream of Unicode characters (SQL_WVARCHAR). This maps to String.
Real Signed, approximate, numeric value with a binary precision 24 (zero or absolute value 10[–38] to 10[38]).(SQL_REAL). This maps to Single.
UniqueIdentifier A fixed-length GUID (SQL_GUID). This maps to Guid.
SmallDateTime Data and time data in the format yyyymmddhhmmss (SQL_TYPE_TIMESTAMP). This maps to DateTime.
SmallInt Exact numeric value with precision 5 and scale 0 (signed: –32,768 <= n <= 32,767, unsigned: 0 <= n <= 65,535) (SQL_SMALLINT). This maps to Int16.
Text Variable length character data. Maximum length is data source–dependent (SQL_LONGVARCHAR). This maps to String.
Timestamp A stream of binary data (SQL_BINARY). This maps to an Array of type Byte.
TinyInt Exact numeric value with precision 3 and scale 0 (signed: –128 <= n <= 127, unsigned:0 <= n <= 255)(SQL_TINYINT). This maps to Byte.
VarBinary Variable length binary. The maximum is set by the user (SQL_VARBINARY). This maps to an Array of type Byte.
VarChar A variable-length stream character string (SQL_CHAR). This maps to String.
Date Date data in the format yyyymmdd (SQL_TYPE_DATE). This maps to DateTime.
Time Date data in the format hhmmss (SQL_TYPE_TIMES). This maps to DateTime.

The following table shows mappings between OdbcType data types, ODBC data types (shown in parentheses), and .NET Framework types.

.NET Framework

Supported in: 4, 3.5, 3.0, 2.0, 1.1

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ
Looks Like There Is An Error With OdbcType.Time
The documentation says...

     "OdbcType.Time - Date data in the format hhmmss (SQL_TYPE_TIMES). This maps to DateTime."

But, if you try to pass a valid DateTime string you will receive an error that says...

     "Failed to convert parameter value from a String to a TimeSpan."

So, apparently OdbcType.Time wants to be mapped to a TimeSpan rather than a DateTime (as the documentation suggests).

As a side note, this makes sense since OleDbType.DBTime (a similar type with OLE DB) is correctly mapped to a TimeSpan.