IsDBNull generic shortcut function

question-markHey all,

If you’re working with data from an SQL database or from any other database for that matter you probably know the exception cause by calling the reader[“columnName”]

This exception is exceptionally annoying because you cannot predict when it is going to happen, it depends on data from the database and can throw the exception at any time.

So, while working on a code that’s not mine, as you know I’m a consultant so I work on other peoples code most of the time.

The way they worked around the issue is like so:

[csharp]

browserTarget = String.Empty;

if (!currReader.IsDBNull(3))

browserTarget = currReader.GetString(3).Trim();

[/csharp]

Now, can you imagine this on every column in the DB which includes 30 columns?

I had to figure out a way to make this generic and just pass it on to the other developers in the company.

scrtch

This is what I wrote for them

and this is how you call the function

[csharp]

public static class DbHelpers

{

public static objectType convertToGenericObject(object readerColumn)

{

objectType returnValue;

if (!Convert.IsDBNull(readerColumn))

returnValue = (objectType)readerColumn;

else

returnValue = default(objectType);

return returnValue;

}

}

[/csharp]

objectType is the type you want the function to return and the object readerColumn is simply the reader[“columnName”] or reader[“columnIndex”].

This function won’t throw an exception even if the Db column is null.

Submit to Hacker News

[NOTE] This post has been imported to Hugo from a Wordpress blog. It may be broken, missing images, code snippets or other information.

[NOTE] updated August 30, 2009. It's 3437 days old . This article may have outdated content.