我是C#的新手.我正在使用System.Data.SqlClient类从数据库表执行一些select查询.执行一些select查询时,我得到了sqlnullvalueexception.在谷歌搜索我发现如果数据库中的值为null,SqlDataReader.GetString(或它的变体)将抛出sqlnullvalueexception.这个最好的编码方法是什么?
if (!sqlDataReader.IsDBNull(n)) value = r.GetString(n);
Run Code Online (Sandbox Code Playgroud)
有更好的编码方式吗?
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));
}
}
Run Code Online (Sandbox Code Playgroud)
你可以这样打电话:
value = reader.GetStringOrNull(n);
Run Code Online (Sandbox Code Playgroud)
Tho*_*que 13
你发布的代码很好.你也可以这样做:
value = r[n] as string;
Run Code Online (Sandbox Code Playgroud)
如果在数据库中的值是零,r[n]
将返回DBNull.Value,和演员来string
将返回null
.
归档时间: |
|
查看次数: |
19741 次 |
最近记录: |