在C#中,OleDbDataReader 能否返回挑选记录的总数?下面的程序使用OleDbDataReader查询数据库中特定的记录,在执行OleDbDataReader reader=myCommand.ExecuteReader();后
我想知道一共查询到了多少条记录,请问OleDbDataReader是否有一个属性可以返回挑选记录的总数? public ArrayList GetUserList() 
{
ArrayList userList=new ArrayList(10); try
{
              ConstClass.databaseConnect.Open(); 
OleDbCommand myCommand=new OleDbCommand();
                               myCommand.Connection=ConstClass.databaseConnect;
myCommand.CommandText="select * from usertable";
OleDbDataReader reader=myCommand.ExecuteReader();

while (reader.Read()) 
{
userList.Add(reader["UserName"].ToString());
}
reader.Close();
}
catch (Exception ex) 
{
MessageBox.Show(ex.Message);
}
finally 
{

ConstClass.databaseConnect.Close();
}                       
return userList;
}

解决方案 »

  1.   

    我也遇到这个问题
    有个不好的办法,可以在循环内部放一个值
    dim i as integer
    while
    i=i+1
    end while
      

  2.   

    在.net中,像你所说的那种情况,只有在删除、更新的时候才会有。查询是没有的!
      

  3.   

    OleDbDataReader reader=myCommand.ExecuteReader();
    ----------------------------------------------->
    int i = myCommand.ExecuteNonQuery()
      

  4.   

    可以这样试试,不过这种方法有点怪
    myCommand.CommandText="select *, count(*) As rowNum from usertable";
    reader.Read()
    Convert.ToInt32(reader["rowNum"])要的记录数
      

  5.   

    看来只有用count(*)来选取了 
    或者在做个函数 selectCount()函数 专门用来返回记录数的!