|
|
Before I show you the other Get* methods that read column values, you need to know the standard C# types and the values they support. You need to know these so that you can understand the type compatibilities between C# and SQL Server shown later. Table 9.3 shows the standard C# types, along with the underlying .NET type and the values that can be stored in the C# type.
C# TYPE | .NET TYPE | VALUES |
---|---|---|
bool | Boolean | A Boolean true or false value. |
byte | Byte | An 8-bit unsigned integer between 0 and 28 - 1(255). |
char | Char | A 16-bit Unicode character. |
DateTime | DateTime | A date and time between 12:00:00 AM January 1, 0001 and 11:59:59 PM December 31, 9999. |
decimal | Decimal | A fixed precision and scale number between approximately +/-1.0 *10-28 and approximately +/-7.9 *1028 with 28 significant figures of precision. |
double | Double | A 64-bit floating-point number between approximately +/-5 *10-324 and approximately +/-1.7 *10308 with 15 to 16 significant figures of precision. |
float | Single | A 32-bit floating-point number between approximately +/-1.5 *10-45 to approximately +/-3.4 *1038 with 7 significant figures of precision. |
Guid | Guid | A 128-bit unsigned integer value (16 bytes) that that is unique across all computers and networks. |
int | Int32 | A 32-bit signed integer between -231 (-2,147,483,648) and 231 - 1 (2,147,483,647). |
long | Int64 | A 64-bit signed integer between -263 (-9,223,372,036,854,775,808) and 263 - 1 (9,223,372,036,854,775,807). |
sbyte | SByte | An 8-bit signed integer between -27 (-128) and 27 - 1 (127). |
short | Int16 | A 16-bit signed integer between -215 (-32,768) and 215 - 1 (32,767). |
string | String | A variable-length string of 16-bit Unicode characters. |
uint | UInt32 | A 32-bit unsigned integer between 0 and 232 - 1 (4,294,967,295). |
ulong | UInt64 | A 64-bit unsigned integer between 0 and 264 - 1 (18,446,744,073,709,551,615). |
ushort | UInt16 | A 16-bit unsigned integer between 0 and 216 - 1 (65,535). |
Note | The standard C# types are defined in the System namespace. |
Table 9.4 shows the SQL Server types, the compatible standard C# types, and the DataReader Get* methods that return each C# type. You use this table to figure out which method to call to get a specific column type. For example, if you need to get the value of a bigint column, you call the GetInt64() method that returns a long.
SQL SERVER TYPE | COMPATIBLE STANDARD C# TYPE | GET* METHOD |
---|---|---|
binary | byte[] | GetBytes() |
bigint | long | GetInt64() |
bit | bool | GetBoolean() |
char | string | GetString() |
datetime | DateTime | GetDateTime() |
decimal | decimal | GetDecimal() |
float | double | GetDouble() |
image | byte[] | GetBytes() |
int | int | GetInt32() |
money | decimal | GetDecimal() |
nchar | string | GetString() |
ntext | string | GetString() |
nvarchar | string | GetString() |
numeric | decimal | GetDecimal() |
real | float | GetFloat() |
smalldatetime | DateTime | GetDateTime() |
smallint | short | GetInt16() |
smallmoney | decimal | GetDecimal() |
sql_varient | object | GetValue() |
text | string | GetString() |
timestamp | byte[] | GetBytes() |
tinyint | byte | GetByte() |
varbinary | byte[] | GetBytes() |
varchar | string | GetString() |
uniqueidentifier | Guid | GetGuid() |
Note | You can see the SQL Server types and the values supported by those types in Table 2.3 of Chapter 2, "Introduction to Databases." |
Note | The Get* methods are defined in all of the DataReader classes and work for all databases. |
Next you'll see how to use some of the methods shown in Table 9.4.
|
|