Linq to Entity 在数据库中插入数据
Posted
技术标签:
【中文标题】Linq to Entity 在数据库中插入数据【英文标题】:Linq to Entity insert data in db 【发布时间】:2013-09-07 05:56:18 【问题描述】:如何使用 Linq to Entity 在 BidingNavigator 上单击保存按钮后插入添加到 GridView 中的数据。
我正在尝试将数据添加到数据库,但出现了一些问题。我正在使用此代码显示数据:
...
private void PostojeciPRojekti_Load(object sender, EventArgs e)
dbcontext = new logicrms2Entities1();
var projekti = from c in dbcontext.projekti
select c;
projektiBindingSource.DataSource = projekti.ToList();
projektiGridControl.Refresh();
...
编辑
我尝试使用以下方法保存数据:
private void projektiBindingNavigatorSaveItem_Click(object sender, EventArgs e)
dbcontext.SaveChanges();
gridView1.RefreshData();
【问题讨论】:
保存数据到数据库的代码在哪里? 【参考方案1】:首先在表单中维护一个新添加对象的列表:
private List<projekti> addedList = new List<projekti>();
然后,在 DataGridView 上处理 RowsAdded 事件:
dataGridView1.RowsAdded += new DataGridViewRowsAddedEventHandler(dataGridView1_RowsAdded);
接下来,将任何添加的对象添加到 RowsAdded 事件处理程序的列表中:
private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
addedList.Add(dataGridView1.Rows[e.RowIndex].DataBoundItem as projekti);
最后,在导航器的保存按钮 click 事件处理方法中,您可以存储对象:
private void saveButton_Click(object sender, EventArgs e)
var dbcontext = new logicrms2Entities1();
addedList.ForEach(p=> dbcontext.projeckit.Add(p));
dbcontext.SaveChanges()
【讨论】:
感谢您的回答,我会尝试的。 :) 非常欢迎您,如果可以,请不要忘记将其标记为答案。 问题:GridView 不包含 'RowsAdded' 的定义并且没有扩展方法 'RowsAdded' GridView 是指 System.Windows.Forms.DataGridView 吗?如果是这样,它有一个名为 RowsAdded 的事件:msdn.microsoft.com/en-us/library/… 我的错...对不起,我正在使用 DevExpress.XtraGrid.Views.Grid.GridView以上是关于Linq to Entity 在数据库中插入数据的主要内容,如果未能解决你的问题,请参考以下文章
SQL 查询显示了良好的数据库值,但 LINQ to Entity 框架从无处获得空值
优化多个 LINQ to Entity Framework 查询
Linq to Entity Paging with large dataset太慢了