我是 C# 新手。我正在使用 System.Data.SqlClient 类从数据库表执行一些选择查询。我在执行一些选择查询时遇到 sqlnullvalueException。通过谷歌搜索,我了解到如果数据库中的值为空,SqlDataReader.GetString(或其变体)将抛出 sqlnullvalueexception。 对此的最佳编码实践是什么?
if (!sqlDataReader.IsDBNull(n)) value = r.GetString(n);
还有更好的编码方式吗?
最佳答案
如果您不想多次重复此操作,只需创建一个辅助函数,如下所示:
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);
关于c# - SqlDataReader.GetString 和 sqlnullvalueException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43373941/