标记另一行的行后更新DataGridView - C#

时间:2018-04-13 11:46:45

标签: c# database winforms datagridview

所以我对编码和所有这些东西都很陌生,所以请原谅我,如果这是一个非常愚蠢的问题,我已经尝试寻找它,但没有找到任何帮助我的东西。

我的WinForm中有两个不同的DataGrids,一个是存储在其中的客户的信息,另一个是不同的联系人 - 都来自数据库。 现在我需要以某种方式让第二个网格更新,并且只显示与我选择的客户相关的联系人。

怎么会这样呢?

非常感谢帮助!

1 个答案:

答案 0 :(得分:0)

好吧,我解决了这个问题并在这里与未来可能遇到同样问题的人分享。这就是函数的样子,可能不是世界上最漂亮的东西,但它运行起来。

        public void RefreshContact(int customerID)
    {
        CustomerDBEntities db = new CustomerDBEntities();
        var contacts = db.Contacts;         

        dataGridView_Contacts.Rows.Clear();
        if (customerID != 0)
        {
            int i = 0;
            foreach (var item in db.Customers.Where(x => x.PKCustomer == customerID).First().Contact.ToList())
            {
                dataGridView_Contacts.Rows.Add();
                dataGridView_Contacts.Rows[i].Cells[0].Value = item.PKContact;
                dataGridView_Contacts.Rows[i].Cells[1].Value = item.Name;
                dataGridView_Contacts.Rows[i].Cells[2].Value = item.Firstname;
                i++;
            }
        }
    }

这就是我调用函数的方式

        private void dataGridView_Customers_SelectionChanged(object sender, EventArgs e)
    {
        CustomerDBEntities db = new CustomerDBEntities();

        int customerID = (int)dataGridView_Customers.SelectedRows[0].Cells[0].Value;

        RefreshContacts(customerID);         
    }