在C#中設置主從表有以下幾個重點:
1.設置表之間的關系 DataRelation
2.設置主從表的數據源 BindingSource
關鍵是設計從表的數據源應為主表的數據源,它的DataMember應為主從表關系的名稱
以下為運行時的截圖,界面上有兩個datagridview
代碼(全在Form1構造函數中實現):
public Form1() { InitializeComponent(); using (SqlConnection conn = new SqlConnection()) { conn.ConnectionString = "Data Source=.;Initial Catalog=Northwind;Integrated Security=True"; conn.Open(); DataSet ds = new DataSet(); SqlDataAdapter sdaMaster = new SqlDataAdapter("Select * from Orders", conn); sdaMaster.Fill(ds, "Orders"); SqlDataAdapter sdaDetail = new SqlDataAdapter("select * from [Order Details]", conn); sdaDetail.Fill(ds, "OrderDetails"); //創建兩個表之間的關系 DataRelation dr=new DataRelation("FK_Orders_OrderDetails",ds.Tables["Orders"].Columns["OrderID"],ds.Tables["OrderDetails"].Columns["OrderID"]); ds.Relations.Add(dr); //以下為創建數據源 BindingSource bsMaster = new BindingSource(); bsMaster.DataSource = ds.Tables[0].DefaultView; // bsMaster.DataMember = "Orders"; BindingSource bsDetail = new BindingSource(); bsDetail.DataSource = bsMaster; //從表的數據源應該設置為主表的BindingSource bsDetail.DataMember = "FK_Orders_OrderDetails"; //從表的主從關系名 dgvMaster.DataSource = bsMaster; dgvDetail.DataSource = bsDetail; } }
以下為其它的一些說明連接:
http://www.cnblogs.com/pegasus/archive/2008/08/31/1280712.html