SqlDataReader,DataSet判空总结

本文介绍如何使用SqlDataReader判断数据是否存在,并演示了通过DBNull判断字段是否为空的方法。此外,还提供了使用DataSet进行数据管理和避免重复数据录入的建议。

跟随虾哥项目实践,硬件选小智就对了

xiaozhi 开源方案官方适配,二次开发文档齐全

SqlDataReader判断
       SqlDataReader dr = new SqlDataReader();
               dr.hasRows 为true则有记录,为false则无记录
              dr.Read() 也会自动判断是否有记录
       对于具体字段
              dr.IsDBNull(i) 为true则空,为false则有值
  例程:
  while (dr.Read())  
  {  
      if(dr.IsDBNull(1))  
      {  
        //为null  
      }  
      else  
      {  
        textbox1.Text=dr["name"].ToString();  
      }  
   }
  • DataSet判断
            DataSet ds = new DataSet();
            if(ds.Tables.Count==0)                         //ds中是否有表
            if(ds.Tables[0].Rows.Count == 0)       //ds中表是否有数据
            if(ds.Tables[0].Row[i].IsNull(j))            //ds中单元是否有记录,IsNull存在重载 
  • 关于dataset使用的重大问题及建议 : 在AccessImport项目中,所使用的DataSet都是由SqlDataAdapter生成的(不是动态)。数据表发现很多重复数据,追了很久才查到原因:DataSet在从新写入数据时没有清空,如果此时Fill的话,只是在以前的数据后面追加数据,如果该表没有主键,在insert的时候就会再次写入以前的数据。所以建议在使用sqlDataAdapter.Fill(DataSet)之前,先把DataSet清空一下:DataSet.clear()。在使用完之后,最好把DataSet的资源释放掉:DataSet.dispose()。

跟随虾哥项目实践,硬件选小智就对了

xiaozhi 开源方案官方适配,二次开发文档齐全

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值