DataReader 不存在此行/列的数据

用DataReader对数据进行绑定呵呵,用他来读取数据库的最简单方式,它只能读取,不能写入,并且是从头至尾往下读的它占用内存小,速度快,在数据量较少的情况下,DataSet和DataReader 的优劣并没有非常明显的优劣,然而,当数据流量达到一定量(200条左右),这和您的计算机的硬件配置有关,DataReader 的优势就很明朗了. 

代码如下:

            string constr =**************
            string sql = string.Format("Select * from News where NewId={0}",5);
            OleDbConnection con=new OleDbConnection(constr);
            con.Open();
            OleDbCommand cmd = new OleDbCommand(sql, con);
            OleDbDataReader dtr=cmd.ExecuteReader();          
            dtr.Read();
            this.Label1.Text = dtr["NewTitle"].ToString();
            this.Label2.Text = dtr.GetValue(3).ToString();
            this.Label3.Text = dtr.GetValue(4).ToString();
            dtr.Dispose();
            con.Close();

刚开没有写dtr.Read();结果报错说 :不存在此行/列的数据。后来加上了, 因为dtr中有一条记录,所以读出来了。

呵呵粗心害死人啊!

同样的登陆这块也是:

  OleDbDataReader rd = cmd.ExecuteReader();  //执行SQL语句,返回记录(一般用户名和密码相同的只有一个),所以rd中只存在一条记录
      rd.Read();   //返回true,因为rd中有一条记录,所以读出来了。
      Label1.Text = rd.GetValue(0).ToString();
       if (rd.Read() == true)     //唯一的一条记录已经被读出来了,现在rd.read()将返回false
             Label1.Text = "登陆成功"; //这里永远不会登陆成功,除非有另外一个用户的用户名和密码完全一样

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值