表a
 id , bId ,name
  1    2    xx
  2    1    ff
  3    2    ff
表b
 id , name
  1    xI
  2    fI
  3    aI
执行SQL"SELECT 表a.* ,表b.* FROM 表a Left join 表b on 表a.bId=表b.id"DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(...);
ds = da.Fill();
在得到的结果用要求有两个表
ds.Table[0]
 id , bId ,name
  1    2    xx
  2    1    ff
  3    2    ffds.Table[1]
 id , name
  1    xI
  2    fI也就是根据sql语句中的关联返回 多个表的DataSet

解决方案 »

  1.   

    sql="select * from a;select * from b where b.id in (select distinct bid from a)";执行返回数据集dataset包含需要的表.
      

  2.   

    select * from 表a select* from 表b
      

  3.   

    若是一般「只读型」、不需要「分頁(換頁)、排序」等特殊功能的控件,如本帖中的 DropDownList 控件,只是用来纯粹 select 数据库、纯粹用来「显示」数据的话,建议用 DataReader。使用 ADO.NET 的 NextResult 方法取得多个 Result Set 
    http://www.cnblogs.com/WizardWu/archive/2008/07/11/1241174.html
    using (SqlConnection conn = new SqlConnection(strConnString)) {
       conn.Open();
       using (SqlCommand cmd = new SqlCommand()) {
        cmd.Connection = conn;    // 利用分号「;」串连多句 SQL 语句,之后再一次丢进数据库去执行,达成「批次」读取或更新
        // 数据库的目的。此技巧亦适用于 INSERT、UPDATE、DELETE 的「批次」执行。       
        cmd.CommandText = "SELECT 字段1,字段2 FROM 数据表1 ; SELECT * FROM 数据表2";    using (SqlDataReader dr = cmd.ExecuteReader()) {
          while(dr.Read()) {
            this.DropDownList1.Items.Add(dr.GetSqlString(0).ToString() + dr.GetSqlInt32(1).ToString());
          }
          dr.NextResult();
          while(dr.Read()) {
            this.DropDownList2.Items.Add(dr.GetString(0) + dr.GetInt32(1));
          }
        }
      }
    }
    另一個示例,用單一個 Command、單一個 DataReader 取得多個 ResultSet 的寫法: SqlConnection scConn = null; 
    SqlCommand scCmd = null; 
    SqlDataReader scReader = null; strSql = "SELECT * FROM Customers;" + 
         "SELECT * FROM Orders;" + 
         "SELECT * FROM [Order Details]"; scCmd = new SqlCommand(strSql, scConn); 
    scReader = scCmd.ExecuteReader(); do 

      while (scReader.Read()) 
      { 
        Response.Write(scReader[0] + " - " + scReader[1] + "<br>"); 
      } 
    } while (scReader.NextResult()); 
      

  4.   

    两条select语句,分别从两个表里面取数据就行了。