在這個博客帖子有讀者一個很好的擴展方法
SQL Data Reader - handling Null column values
我改成了IDataReader的接口
public static string GetStringSafe(this IDataReader reader, int colIndex)
{
return GetStringSafe(reader, colIndex, string.Empty);
}
public static string GetStringSafe(this IDataReader reader, int colIndex, string defaultValue)
{
if (!reader.IsDBNull(colIndex))
return reader.GetString(colIndex);
else
return defaultValue;
}
public static string GetStringSafe(this IDataReader reader, string indexName)
{
return GetStringSafe(reader, reader.GetOrdinal(indexName));
}
public static string GetStringSafe(this IDataReader reader, string indexName, string defaultValue)
{
return GetStringSafe(reader, reader.GetOrdinal(indexName), defaultValue);
}
感謝您的幫助 – Boardy
難道不該'.IsDbNull(閱讀器[ 「字段」])'?或者我錯了? – Hossein
取決於閱讀器實現/幫助器方法。基本接口IDataReader只能使用整數列索引。然而,MySqlDataReader有重載需要一個字符串字段名稱,它只是一個reader.GetOrdinal查找。 – Nicholi