您需要检查
IsDBNull:
if(!SqlReader.IsDBNull(indexFirstName)){ employee.FirstName = sqlreader.GetString(indexFirstName);}这是检测和处理这种情况的唯一可靠方法。
我将这些东西包装到扩展方法中,如果该列确实是,则倾向于返回默认值
null:
public static string SafeGetString(this SqlDataReader reader, int colIndex){ if(!reader.IsDBNull(colIndex)) return reader.GetString(colIndex); return string.Empty;}现在您可以这样称呼它:
employee.FirstName = SqlReader.SafeGetString(indexFirstName);
而且您再也不必担心出现异常或
null值了。



