我是C#的新手.我正在使用System.Data.SqlClient类从数据库表执行一些select查询.执行一些select查询时,我得到了sqlnullvalueexception.在谷歌搜索我发现如果数据库中的值为null,SqlDataReader.GetString(或它的变体)将抛出sqlnullvalueexception.这个最好的编码方法是什么?
if (!sqlDataReader.IsDBNull(n)) value = r.GetString(n);
有更好的编码方式吗?
Tom*_*ier 42
如果您不想重复这一点,只需创建一个辅助函数,如下所示:
public static class DataReaderExtensions
{
    public static string GetStringOrNull(this IDataReader reader, int ordinal)
    {
        return reader.IsDBNull(ordinal) ? null : reader.GetString(ordinal);
    }
    public static string GetStringOrNull(this IDataReader reader, string columnName)
    {
        return reader.GetStringOrNull(reader.GetOrdinal(columnName));
    }
}
你可以这样打电话:
value = reader.GetStringOrNull(n);
Tho*_*que 13
你发布的代码很好.你也可以这样做:
value = r[n] as string;
如果在数据库中的值是零,r[n]将返回DBNull.Value,和演员来string将返回null.