Reading Null Values

As you learned in Chapter 2, a column defined as null can store a null value. A null value indicates that the column value is unknown. A standard C# type cannot store a null value, but a Sql* type can.

Let's consider an example of reading a null value from the database. Say you've performed a SELECT statement that retrieves the UnitPrice column for a row from the Products table, and that the UnitPrice column contains a null value. If you try to store that null value in a standard C# type (such as a decimal) using the following code:

 decimal unitPrice =   productsSqlDataReader.GetDecimal(unitPriceColPos); 

then you'll get the following exception:

 System.Data.SqlTypes.SqlNullValueException 

You'll also get this exception if you try to store the null value in an object, as shown in the following example:

 object unitPriceObj =   productsSqlDataReader["UnitPrice"]; 

You can check if a column contains a null value using the IsDBNull() method of a DataReader object. This method returns a Boolean true or false value that indicates whether the column value is null. You can then use that Boolean result to decide what to do. For example:

 if (productsSqlDataReader.IsDBNull(unitPriceColPos)) {   Console.WriteLine("UnitPrice column contains a null value"); } else {   unitPrice = productsSqlDataReader.GetDecimal(unitPriceColPos); } 

Because productsSqlDataReader.IsDBNull(unitPriceColPos) returns true, this example displays:

 UnitPrice column contains a null value 

As mentioned, a Sql* type can store a null value. A null value is stored as Null. For example:

 SqlMoney unitPrice =   productsSqlDataReader.GetSqlMoney(unitPriceColPos); Console.WriteLine("unitPrice = " + unitPrice); 

This example displays:

 unitPrice = Null 

Each of the Sql* types also has a Boolean property named IsNull that is true when the Sql* object contains a null value. For example:

 Console.WriteLine("unitPrice.IsNull = " + unitPrice.IsNull); 

This example displays:

 unitPrice.IsNull = True 

True is displayed because unitPrice contains Null.




Mastering C# Database Programming
Mastering the SAP Business Information Warehouse: Leveraging the Business Intelligence Capabilities of SAP NetWeaver
ISBN: 0764596373
EAN: 2147483647
Year: 2003
Pages: 181

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net