qq_32278415 2015-10-24 16:04 采纳率: 0%
浏览 1634

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);
                }
  • 写回答

1条回答 默认 最新

  • threenewbee 2015-10-24 16:09
    关注

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

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

    评论

报告相同问题?

悬赏问题

  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?