winform程序报错求助(判断查询结果是否为空)

小弟初学c#,写了一个数据查询的程序,分别用四个方法实现数据查询结果是否为空的判断,方法1和方法2都可以,但是方法三和方法四一直提示 “ 对象的当前状态使该操作无效”异常,请各位大侠给指点下,问题出在哪?

备注:1、oradr.GetString(0)))字段本人用控制台测试是能正确输出相关数据库字段信息的;
2、看到网上说这个错误一般是,数据超过1000条的缘故,但是这个用户数据库里面只有一条数据,所以我也有点头晕,还请各位指教,谢谢。

try
{
conn.Open();
sql = "select t.*, t.rowid from yonghu t";
OracleCommand oracom = new OracleCommand(sql,conn);
//OracleDataAdapter oraada=new OracleDataAdapter(oracom);
OracleDataReader oradr = oracom.ExecuteReader();

                //if (oradr.Read()==true)  //方法一
                //if (oradr.HasRows)   //方法二
                if (!string.IsNullOrEmpty(Convert.ToString( oradr.GetString(0)))) //方法三
                //if(oradr.IsDBNull(0))   //方法四
                {
                    MessageBox.Show("正确读到相关数据!");

                }
                else
                {
                    MessageBox.Show("查询数据为空");
                }
                conn.Close();
        }
        catch(Exception e)
                {
                    MessageBox.Show(e.Message);
                }

if (oradr.Read())
这是最简单正确的方法。(oradr.Read()==true这种写法纯属啰嗦)

三和四判断的不是记录为空,而是判断的是有一条记录,其中字段为空