2010-02-04 32 views
0

我有一个基本的sql语句,它查找用户并返回一条记录,但是当我运行一段代码时,说明if(myReader.Read())它返回false。我浏览了代码并检查了读者对象,事实上它包含了一条记录。下面是代码。Oracle DataReader返回1行但Read方法返回false

SQL: SELECT USER_NAME,USER_PASSWORD,USER_STATE 来自用户的 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> 
      } 
     } 
+0

这是否查询返回的结果从sqlplus中或SQL Developer中运行时? – thecoop 2010-02-04 13:16:41

+0

是的,在蟾蜍中运行sql并返回结果。验证连接字符串是指向正确的数据库。 – TampaRich 2010-02-04 14:38:25

回答

1

尝试:

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

+1 - 我该怎么做。 – 2010-02-04 14:34:16

+0

这就是我如何做到这一点,但它不是我的代码库来改变。只是研究为什么另一个开发人员代码不起作用。可能让他们改变它。 – TampaRich 2010-02-04 14:46:09