|
|
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.
|
|