The individual cells in a DataTable can have a null value in the form of System.DbNull.Value.
If the DataTable is created by querying a database through ADO.NET, you can write the SQL statement in a way eliminates nulls. It could look like this “SELECT isnull(name, ‘n/a’) AS name FROM products”.
However, there can be scenarios where you don’t have the chance to manipulate the DataTable before you use it.
Such a scenario have I recently been involved in and the problem was that the data retrieved from a database could contain nulls in any of the integer type columns.
If I then bind the DataTable to a GridView in ASP.NET, I had to do a lot of workarounds to calculate footers and other values based on those columns.
Instead of doing the workarounds in a lot of different places in the code, I decided it was a better idea to clean the DataTable for nulls before it is used.
That led to the CleanDataTable method below, that replaces null values with zeros for a few integer type columns.
/// <summary>
/// In the case of null values in a data table, this method
/// will turn all nulls into zeros instead.
/// </summary>
public static DataTable CleanDataTable(DataTable dt)
{
for (int a = 0; a
The point is that you only have to clean it ones and avoid any workaround for handling null values.
Add to Del.icio.us |
Digg |
Reddit |
Furl
Mads Kristensen currently works as a Senior Developer at Traceworks located
in Copenhagen, Denmark. Mads graduated from Copenhagen Technical Academy with a multimedia degree in
2003, but has been a professional developer since 2000. His main focus is on ASP.NET but is responsible for Winforms, Windows- and
web services in his daily work as well. A true .NET developer with great passion for the simple solution.