溫馨提示×

winform數(shù)據(jù)如何綁定兩個表

小億
144
2023-09-08 17:16:41
欄目: 智能運維

在WinForm中,可以使用DataBinding來綁定兩個表。下面是按照步驟來實現(xiàn)的方法:

  1. 在Visual Studio中創(chuàng)建一個WinForm應(yīng)用程序。

  2. 在設(shè)計視圖中,將兩個DataGridView控件拖放到窗體上,分別代表兩個表。

  3. 在代碼中,創(chuàng)建兩個DataTable對象,分別代表兩個表的數(shù)據(jù)。

DataTable table1 = new DataTable();
DataTable table2 = new DataTable();
  1. 假設(shè)兩個表都有一個共同的主鍵字段,基于這個主鍵字段可以進(jìn)行關(guān)聯(lián)。在其中一個表中添加一個外鍵字段,用于存儲另一個表的主鍵值。
table1.Columns.Add("ID", typeof(int));
table1.Columns.Add("Name", typeof(string));
table1.Columns.Add("Table2ID", typeof(int));
table2.Columns.Add("ID", typeof(int));
table2.Columns.Add("Info", typeof(string));
  1. 假設(shè)表2是表1的從表,通過外鍵字段將兩個表關(guān)聯(lián)起來。在表1和表2中分別添加一些數(shù)據(jù)。
table1.Rows.Add(1, "John", 1);
table1.Rows.Add(2, "Tom", 2);
table1.Rows.Add(3, "Lisa", 2);
table2.Rows.Add(1, "Info 1");
table2.Rows.Add(2, "Info 2");
  1. 將兩個表分別綁定到DataGridView控件上。
dataGridView1.DataSource = table1;
dataGridView2.DataSource = table2;
  1. 在代碼中設(shè)置數(shù)據(jù)綁定。找到DataGridView控件的DataBindingComplete事件,在事件處理程序中實現(xiàn)綁定。
dataGridView1.DataBindingComplete += (sender, e) =>
{
foreach (DataGridViewRow row in dataGridView1.Rows)
{
int table2ID = Convert.ToInt32(row.Cells["Table2ID"].Value);
var info = table2.AsEnumerable().FirstOrDefault(r => r.Field<int>("ID") == table2ID);
row.Cells["Info"].Value = info?["Info"];
}
};

通過以上步驟,就可以將兩個表綁定到兩個DataGridView控件上,并實現(xiàn)兩個表之間的關(guān)聯(lián)顯示。

0