private void sqlexec2()
        {
            string str = "server=.;uid=sa;pwd=ttt;database=xxxx";//连接字符串
            string sql = "select number,name,sex from mytemp where sex='男' and department='销售';select number,name,sex from mytemp where sex='女' and department='销售部';"; //两个查询语句
            SqlConnection conn = new SqlConnection(str);//连接对象
            SqlCommand comm = new SqlCommand(sql, conn);
            DataTable dt = new DataTable();
            SqlDataReader dr = null;            conn.Open();
            dr = comm.ExecuteReader();
            dt.Load(dr);
            dataGridView1.DataSource = dt;
            dr.NextResult();
            dt.Load(dr);
            dataGridView2.DataSource = dt;
            conn.Close();
        }
结果是两个表格都显示的是前一个查询的结果

解决方案 »

  1.   

    定义一个DataTable,调用Copy方法,然后再加dr,最后给datagridview2赋值。
      

  2.   

     dt.Load(dr);
     dataGridView2.DataSource = dt;  这样的方式不能绑定多个结果集到 dagagridview吗?
      

  3.   


            private void sqlexec2()
            {
                string str = "server=.;uid=sa;pwd=ttt;database=xxxx";//连接字符串
                string sql = "select number,name,sex from mytemp where sex='男' and department='销售';select number,name,sex from mytemp where sex='女' and department='销售部';"; //两个查询语句
                SqlConnection conn = new SqlConnection(str);//连接对象
                SqlCommand comm = new SqlCommand(sql, conn);
                DataTable dt = new DataTable();
                SqlDataReader dr = null;
     
                conn.Open();
                dr = comm.ExecuteReader();
                dt.Load(dr);
                dataGridView1.DataSource = dt;
                
                dt = new DataTable();
                dt.Load(dr);
                dataGridView2.DataSource = dt;
                conn.Close();
            }
      

  4.   

    DataTable dt1 = new DataTable();
                DataTable dt2 = new DataTable();            conn.Open();            SqlDataReader dr = comm.ExecuteReader();
                dt1.Load(dr);
                dt2.Load(dr);            conn.Close();
                dataGridView1.DataSource = dt1;
                dataGridView2.DataSource = dt2;
    为什么加载到不同的datatable就能实现?
      

  5.   

    同一个datatable 不就覆盖掉了么
      

  6.   

    stubble描述的不太准确,dataTable每次Load一次,会load一个结果集,而datareader是向前只读的,所以,第二次load后会捞出第二个结果集!呵呵,不知我分析的对不