不知道lz想干吗呢?
如果读取数据可以直接用DataAdapter

解决方案 »

  1.   

    sqldatareader是占用一个连接的,如果在sqldatareader没有关闭的时候用和它相关联的SqlConnection去执行其它的操作就不可以了,因为被它给独占了,所以如果你有这样的类似操作的时候,可以采用变通的方式,比如用SqlDataAdapter取出数据放到DataTable中然后对这个DataTable进行循环操作,或者用SqlDataReader读出数据放到一个临时的List中然后对这个List进行循环操作,总之在SqlDataReader关闭之前是不能使用其它的和它的SqlConnection关联的操作的.
      

  2.   

    sqldatareader以独占方式使用数据库连接。
    dataset或者再建一个链接
      

  3.   

    三楼讲的很细致了 使用DataAdapter 参考
     string sqlstr = "select * from table1";
     SqlDataAdapter da = new SqlDataAdapter(sqlstr, conn);
     ds = new DataSet();
     da.Fill(ds, "TEST");
    if(ds.tables[0].rows.count !=0)
    {
     for(int i=0;i<ds.tables[0].rows.count;i++)
    {
          //todo
    }
    }
      

  4.   

    DataSet如何获取每个数据呢?
    for(int i=0;i<ds.tables[0].rows.count;i++)
    {
          //todo
    }
      

  5.   

    for(int i=0;i<ds.tables[0].rows.count;i++)
    {
          object objValue = ds.Tables[0].Rows[i]["Name"];
    }
      

  6.   

    Reader的效率高,如果这样可以将数据Reader到一个Collection中就可以了
      

  7.   

    用DataAdapter
    填充DataSet
    上面的已经介绍很清楚了!
      

  8.   

     ADO.net 1.1确实不行,你只能用DataSet,像楼上各位说的如果是ADO.net 2.0,你可以设置你的连接字符串,有个MultipleActiveResultSets设置为true就可以了