datareader

DataReader best-practices


Similar to this question, but the answers never really got around to what I want to know. Is there any standards around getting values from a DataReader? I.e., is this

dataReader.GetString(dataReader.GetOrdinal("ColumnName"));

considered better/worse/the same as this?

(string) dataReader["ColumnName"];

Solution

  • Here is the way that I do it:

    Int32 ordinal = dataReader.GetOrdinal("ColumnName");
    
    if (!dataReader.IsDBNull(ordinal))
        yourString = dataReader.GetString(ordinal);
    

    It is important to check for DBNull like I have shown above because if the field is null in the DataReader it will throw an exception when you try to retrieve it.