sql - vb.net - 从数据库中读取空值

标签 sql vb.net

我有一个数据库,其中的列中没有值(因此它是 null),但我无法在 vb.net 中处理它。我试过这段代码:

            reader.Read()
            If String.IsNullOrEmpty(reader.GetString(0)) Then
                Return
            Else
                tilbulfolderTextBox.Text = reader.GetString(0)
            End If

还有:

If reader.Read() = False Then

和:

If IsDBNull(reader.Read()) Then

但显然它不起作用,因为我在 Else 之后的语句中遇到异常,我无法使用此方法获取 Null 值。 我猜你会通过阅读代码本身来弄清楚我需要从程序中得到什么。

最佳答案

IsDBNull定义 DbDataReader 基础对象的方法来处理这种情况。
当然,如果 reader.Read() 返回 false(意味着没有更多行可用),则您不能尝试读取内容

    If reader.Read() Then
        If reader.IsDBNull(0) Then
            Return
        Else
            tilbulfolderTextBox.Text = reader.GetString(0)
        End If
   End If

此外,我没有看到更多你的代码,但请记住,如果你不关闭连接并处置此操作中涉及的对象,以这种方式返回可能是非常错误的

而且,是的,正如其他人指出的那样,Microsoft.VisualBasic 程序集中还有一个名为 IsDBNull 的函数,但是,我更喜欢使用 .NET 框架中定义的类提供的方法,而不是提供的方法为了与以前版本的 VB 兼容

关于sql - vb.net - 从数据库中读取空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16167056/

相关文章:

.net - VB.NET 和 Json,反序列化保留的关键字

SQL Server审计同表数据

sql - 如何创建一个需要很长时间才能在 PostgreSQL 中运行的查询

sql - NTILE 仅适用于不为零的值

.net - Entity Framework 6 Web 表单指南?

c# - LINQ To SQL 会在调用 SubmitChanges 后自动更新 LOCAL/CLIENT id 列吗?

mysql - 基于 SQL (BigQuery) 中的多个列返回许多小数据样本

sql - 将预定义的默认值添加到 T-SQL 中的列

mysql - 传递给 Mysql 数据库的语句未填充数据表

vb.net - 短路 : OrElse combined with Or