表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
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
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());