System.DBNull.Value is really only useful for checking outputs from the database and setting NULL values into the parameters of a stored procedure. Because it’s primarily used when communicating directly with the database, that’s normally the only time you’ll need to compare a value to DBNull. I’m sure there’s other places it’s appropriate, but here’s some places it’s not appropriate:

DBNull cannot be converted to a String (not even with Option Strict Off):


Because of this, the following will always evaluate to False.

Debug.Print(myString Is System.DBNull.Value)

Also always False: