方法多了去了,要看你有什么需求。DataReader也可以:
int count=0;
while(reader.Read())
{
  count++;
}
___________________________________
too simple,sometimes naive :()
___________________________________

解决方案 »

  1.   

    可以用sql查询语句,"select count(*)..."。如果要用DataReader的话,可以填加以下代码:
    while (myDataReader.Read())
       iCount++;
    因为datareader读数据是一条一条地读,所以可以用个计数器把它数出来。
      

  2.   

    上面两位说的都对,datareader.item.count也有吧,好像也有这个功能啊。
      

  3.   

    是这样的。
    我用查询语句查询了记录
    select name,password from table
    之后数据集存入了datareader中了。如果采用上面的方法就不能一次既能把记录数又能把记录结果同时提取出来。如何办呢?好像datareader.item.count不行噢
      

  4.   

    有一个办法,但效率不是太好
    select name,password,(select count(*) from table) from table
      

  5.   

    不明白楼主的意思,datareader只能一次读一个记录,要返回所有记录的数量只能用计数器数。如果数据不多地话用DataSet吧,有Count属性,而且返回的是记录集合。
    另:Datareader是没有item集合的。
      

  6.   

    to strongwood 
    谢谢。
      

  7.   

    但是,使用时
    MyDataSetCommand.Fill(MyDataSet,TableName);
    其中TableName是随便一个可以吗?
    比如我 Table a = new Table();
    就把a赋给TableName,可以吗?还是必须要我查询语句中的table名。
      

  8.   

    好像DataSet.Tables.Count的值总是1,为什么?
    是不是我搞错了?该怎么搞呢?
      

  9.   

    Tables.Count的值返回的是你的DataSet中表的数量,你应该用dstYourDataSet.YourTableName.Count-------------------------------------------------------------------=I Code Therefore I am=
      

  10.   

    如果你是写代码动态生成DataSet的话,应该这样做。
    yourDataAdapter.Fill(yourDataSet,"yourTableName");
    int iCount=yourDataSet.Tables["yourTableName"].Rows.Count;
      

  11.   

    可以同时取得行数和数据集
    SqlCommand cm=new SqlCommand("select count(*) from employees;select * from employees",this.sqlConnection1);
    if (this.sqlConnection1.State==ConnectionState.Closed)
    this.sqlConnection1.Open();
    SqlDataReader dr=cm.ExecuteReader();
    dr.Read();
    ...//取得总行数dr.NextResult();//转到第二个数据集
    dr.Read();
    ...