【重构】DataTable"在位置0处没有任何行"

        在机房重构的过程中遇到了“在位置0处没有任何行”的问题,开始不是很理解,后来查资料发现是使用DataTable的问题。

        【知识点】

        问题:

             

        Why:由于在SQLHelper中使用到DataTable查询数据,如果查询的数据不存在,数据为空就会出现这个问题。

        What:DataTable 是一个临时保存数据的网格虚拟表(表示内存中数据的一个表),它无须代码就可以简单的绑定数据库,使用DataTable的对象包括DataSet和DataView。DataTable是承载数据的载体,用来临时存储数据,作为一个虚拟容器通过各层的传递将数据传送到U层。

        How:判断一下表是否为空,为空做一下Try......Catch的错误处理。还可以返回一个空的实体类,如下:

<span style="font-size:18px;">        Dim table As DataTable    '声明一个DataTable类型变量    
        table = sqlHelper.ExecSelect(Sql, CommandType.Text, sqlParams)
        Dim aUser As New Entity.LoginEntity   '实例化过程  
        If table.Rows.Count <> 0 Then
            '表中内容不为空,执行
            aUser.userID = table.Rows(0).Item("userID").ToString()
            aUser.passWord = table.Rows(0).Item("passWord").ToString()
            aUser.level = table.Rows(0).Item("level").ToString()
            aUser.userName = table.Rows(0).Item("userName").ToString()
            aUser.head = table.Rows(0).Item("head").ToString()
            Return aUser
        Else
            '返回一个空的实体
            Return New LoginEntity
        End If</span>
        【小结】

         问题虽然解决了,但是学习的过程中在到师哥师姐的博客里了解到,DataTable的耦合度比较高,所以使用泛型集合比较好,二者性质差不多,都是承载数据的载体,存储数据的容器,方便数据在各层中的传递。要学的东西还有很多,在遇到问题解决问题的过程中不断学习。


  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值