如何使用实体框架将数据从多个表绑定到datagridview并使用CRUD操作

本文关键字:datagridview 绑定 操作 CRUD 框架 实体 何使用 数据 | 更新日期: 2023-09-27 18:06:00

能否有人请给出一个例子,如何将结果绑定到一个datagridview从多个表(从一个连接查询)在实体框架。实际上我可以将数据绑定到datagridview但是当我调用

context.SaveChanges ();数据库中没有任何更新。如何使用Update,Insert,Delete函数正确地将数据绑定到datagridview。

这就是我所尝试的。

public class DataBindingProjection
{
    public string dono { get; set; }
    public int apmntid { get; set; }
    public string servicedesc { get; set; }
    public string cusid { get; set; }
    public string empid { get; set; 
    public bool isdelivered { get; set; }
}

context = new HHCSEntities();
var query = from d in context.DeliveryOrders
            join a in context.Appointments on d.ApmntId equals a.ApmntId
            join s in context.ServiceCategories on d.ServiceId equals s.ServiceId
            join e in context.Employees on d.EmpId equals e.EmpId
            select new DataBindingProjection
            {
                dono = d.DONo,
                apmntid = a.ApmntId,
                servicedesc = s.ServiceDesc,
                cusid = a.CusId,
                empid = d.EmpId,
                shortname = e.ShrtName,
                isdelivered = d.IsDelivered
            };
dataGridView1.DataSource = query.ToList();
dataGridView1.Columns[1].DataPropertyName = "dono";
dataGridView1.Columns[2].DataPropertyName = "apmntid";
dataGridView1.Columns[3].DataPropertyName = "servicedesc";
dataGridView1.Columns[4].DataPropertyName = "apmntid";
dataGridView1.Columns[5].DataPropertyName = "empid";
dataGridView1.Columns[9].DataPropertyName = "isdelivered";

如何使用实体框架将数据从多个表绑定到datagridview并使用CRUD操作

在给出查询结果后,您应该这样写:

...
BindingSource bi = new BindingSource();
bi.DataSource = query.ToList();
dataGridView1.DataSource = bi;
dataGridView1.Refresh();
...