加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – SQLDataReader:处理空值

发布时间:2020-12-16 06:52:55 所属栏目:asp.Net 来源:网络整理
导读:我正在处理的一些表具有空值并且抛出错误.到目前为止,我已经尝试了一些解决方案来处理空值但没有成功. 以下是我迄今为止努力的代码示例; If (r("datemodified").Equals(DBNull.Value)) Then datemodified = String.Empty Else datemodified = (r("datemodifi
我正在处理的一些表具有空值并且抛出错误.到目前为止,我已经尝试了一些解决方案来处理空值但没有成功.

以下是我迄今为止努力的代码示例;

If (r("datemodified").Equals(DBNull.Value)) Then
                datemodified = String.Empty
            Else
                datemodified = (r("datemodified"))
            End If

和;

If r.HasRows Then
                datemodified = (r("datemodified"))
            Else
                datemodified = String.Empty
            End If

和;

If r("datemodified") = Nothing Then
                datemodified = String.Empty
            Else
                datemodified = (r("datemodified"))
            End If

和;

If r.IsDBNull("datemodified") Then
                datemodified = String.Empty
            Else
                datemodified = (r("datemodified"))

并通过sql;

Select isnull(datemodified,'')

最终结果是IndexOutOfRangeException.

这是sql;

select datemodified,maintainedby,email,hitcount from grouping where id = @footid

ps,我运行了查询,它工作正常(即所有cols存在)

解决方法

要处理代码中的null值,可以使用IsDBNull方法:

Dim index As Integer = r.GetOrdinal("datemodified")
If r.IsDBNull(index) Then
   datemodified = String.Empty
Else
   datemodified = r(index)
End If

要处理SQL中的空值,您必须为该字段指定一个名称,以便能够在数据读取器中按名称访问它:

select datemodified = isnull(datemodified,'')

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读