班级表.班级编号
学生表.班级编号我用
sqldataadapter.Fill(ds,"班级");
sqldataadapter.Fill(ds,"学生信息");
填充数据后,在ds中建立他们之间的关系:ds.Relations.Add("每个班级的学生",ds.Tables["班级"].Columns["班级编号"],ds.Tables["学生信息"].Columns["班级编号"])如果是用DataGrid的话,那么只要:
DataGrid1.SetDataBinding(ds,"班级.每个班级的学生")就可以实现当班级表数据位置改变时,DataGrid控件中的学生信息数据,就跟着同步改变。
但是我用DataGridView控件了,没有SetDataBinding方法,要怎么弄呢?

解决方案 »

  1.   

    呵呵,在Ado.net要用两个BindingSource来搞定!
    代码大致如下:SqlConnection conn = new SqlConnection();
    SqlConnectionStringBuilder ssb = new SqlConnectionStringBuilder();
    conn.ConnectionString =
    "Data Source=localhost; Initial Catalog=Northwind; Integrated Security = True;";
    conn.Open();DataSet dbSet = new DataSet(); // 创建数据集
    using (SqlDataAdapter da = new SqlDataAdapter("select * from Customers", conn))
    {
    da.Fill(dbSet, "Customers"); // 填充一个 Customers 表
    }
    using (SqlDataAdapter da = new SqlDataAdapter("select * from Orders", conn))
    {
    da.Fill(dbSet, "Orders"); // 填充一个 Orders 表
    }DataColumn parentCol = dbSet.Tables["Customers"].Columns["CustomerID"];
    DataColumn childCol = dbSet.Tables["Orders"].Columns["CustomerID"];
    DataRelation relation =
    new DataRelation("FK_Customers_Orders", parentCol, childCol); // 建立主从关系
    dbSet.Relations.Add(relation); // 添加主从关系到数据集中BindingSource bs_Customers = new BindingSource(); // 创建绑定源
    BindingSource bs_Orders = new BindingSource();bs_Customers.DataSource = dbSet;
    bs_Customers.DataMember = "Customers"; // 绑定到数据源——主表bs_Orders.DataSource = bs_Customers;
    bs_Orders.DataMember = "FK_Customers_Orders"; // 绑定到关系——从表,注意:区分大小写dataGridView1.DataSource = bs_Customers; // DataGridView 显示
    dataGridView2.DataSource = bs_Orders;
    参考自:http://www.cnblogs.com/top5/archive/2009/08/23/1552459.html