如何判断一个sqldatareader是否有记录,或者记录数有多少条呢?
------------------------------
strsql="select ..... from ...."
command.CommandText=strsql;
dataReader = command.ExecuteReader();执行以上代码后,我如何检测这个 datareader 是否存在记录呢?返回几条记录呢?
如何检测。三种状态如何判断:
1.是否正常打开(有时会因为某些原因,如网络不良,造成找开不成功)
2.打开成功了,是否有记录返回呢(有时虽然打开成功,但是查询语句中对应的记录并不存在,所以返回0条记录)
3.记录条数是多少呢?

解决方案 »

  1.   

     while (dataReader.Read())

      //do sth
    }
      

  2.   

    dataReader.HasRows  是否有记录
      

  3.   

    dataReader.RecordsAffected  获取执行 Transact-SQL 语句所更改、插入或删除的行数。参考:http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqldatareader_members(v=VS.80).aspx
      

  4.   

    while (dataReader.Read())
    {  
      //do sth
    }up
      

  5.   

    先判断链接状态是否连接上 没有链接就进行连接 然后使用command  之后再使用上面的方法
      

  6.   

    if(dataReader.Rows() && dataReader.Read())
    {  
    }
      

  7.   

    dataReader.Read()属性返回一个bool值,是说指针是否指到这一行,即是否有内容可读,如果不写这条语句,Reader其实并没有读到任何东西,读的是一个NULL,所以,这一行必不可少,并dataReader.HasRows 方法是判断是否有行可读,可进行判断,楼主可到msdn里面进行详细的学习,输入SQLDataReader查看他的属性和方法即可~~~