将实体绑定到datagridview,并允许编辑和删除

本文关键字:编辑 删除 许编辑 绑定 实体 datagridview | 更新日期: 2023-09-27 18:20:29

我有一个数据网格视图,我想将linq查询绑定到它。

这是我的班级级别:

   private readonly SuburbanPortalEntities _entities;
   private List<PaymentType> _paymentTypes;

这是我加载的代码:

  _paymentTypes = (from pt in _entities.PaymentTypes
            where pt.CorporationId.Equals(_currentcorp.CorporationId)
            select pt).ToList();
  dataGridView_PaymentTypes.DataSource = _paymentTypes;

这是我的插页,在这一点上,它什么都没做:

private void button_Insert_Click(object sender, EventArgs e)
{
  var row = new PaymentType();
  row.IsActive = false;
  row.IsAdded = true;
  row.CorporationId = _currentcorp.CorporationId;
  row.TokenId = _token.TokenId;
  row.PaymentTypeId = Guid.NewGuid();
  row.ExcludeCreditCodes = 9;
  _paymentTypes.Add(row);
}

还有我的简单保存按钮:

_entities.SaveChanges();

它正在处理现有记录。当我对它们进行更改时,它会更改数据库中的数据。它对新记录不起作用,我也没有删除,因为我不知道该怎么做。

我更喜欢允许datagridview在行上添加记录,而不是按钮。此外,对于删除,允许datagridview处理删除。

有什么建议吗?

将实体绑定到datagridview,并允许编辑和删除

要在sql server中插入新数据,可以尝试以下操作:

private void button_Insert_Click(object sender, EventArgs e)
{
  var row = new PaymentType();
  row.IsActive = false;
  row.IsAdded = true;
  row.CorporationId = _currentcorp.CorporationId;
  row.TokenId = _token.TokenId;
  row.PaymentTypeId = Guid.NewGuid();
  row.ExcludeCreditCodes = 9;
  _entities.PaymentTypes.Add(row);  //for linq to sql, you should use InsertOnSubmit()
  _entities.SaveChanges();
}