c# - SqlDataReader.GetString 和 sqlnullvalueException

标签 c# .net

我是 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/

相关文章:

c# - 根据参数,以编程方式启动 CLI 应用程序不起作用

C# - VS 代码 - 启动 :program . .. 不存在

面向中级 .NET 开发人员的 Java

c# - 在 C# Windows 应用程序中进行 map 编程

c# - 从上传的文件中读取文本 - C# 和 javascript

c# - DotNetOpenAuth2 中的单个 AuthZ/AuthN 端点

c# - 通过反射同时设置多个属性

c# - 查找基本类型的属性

c# - 返回查询中的最大值

c# - 我应该在 NETPortable 中引用哪个,找不到 GetMethods