Oracle DataReader返回1行,但Read方法返回false [英] Oracle DataReader returns 1 row but Read method returns false

查看:145
本文介绍了Oracle DataReader返回1行,但Read方法返回false的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个基本的sql语句,该语句查找用户并返回一条记录,但是当我运行一段代码说if(myReader.Read())时,它返回false.我单步执行代码并检查了读者对象,实际上它包含一条记录.下面是代码.

I have a basic sql statement that looks up a user and returns one record but when I run a block of code that says if(myReader.Read()) it returns false. I have stepped through the code and examined the reader object and it does in fact contain one record. below is the code.

sql: 选择用户名,用户密码,用户状态 来自用户 WHERE users.user_id = 123

sql: SELECT user_name, user_password, user_state FROM users WHERE users.user_id = 123

    System.Data.Common.DbCommand _cmd = this.GetCommand(conn, _dbf, sqlText, CommandType.Text);
     System.Data.Common.DbConnection _cn = _cmd.Connection;
     System.Data.Common.DbDataReader myReader = null;

     _cn.Open();
     using(_cn) {
        myReader = _cmd.ExecuteReader();
        if (myReader.Read())  {
                <object gets built here with user data returned from sql>
          }
       }

推荐答案

尝试:

if (myReader.HasRows)
  while (myReader.Read())
  .....

这篇关于Oracle DataReader返回1行,但Read方法返回false的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆