[英]How to insert, update and delete records of a DataGridView to DataBase via BindingNavigator
我的数据库中有一个Student
表和一堆其他表(称为University
并且我使用Entity Framework在Winforms应用程序中连接到该表。
我从实体框架模型内的Student
表创建了一个DataSource
。
然后将DataSource
拖到我的表单上。(请参见下图)
我知道如何将student
表的记录(在我的数据库中只有一条记录)填充到DataGridView
,使用这段代码没有问题:
//An instance of my EFModel
Oublic UniversityEntities UE = new UniversityEntities();
private void Form1_Load_1(object sender, EventArgs e)
{
studentBindingSource.DataSource = UE.Students.ToList();
}
但是我想使用BindingNavigator
从数据库中插入/更新/删除数据库中的记录,考虑到我使用的是Entity Framework,我不知道怎么可能。
例如,我尝试这样做是为了在编辑一行后保存更改,但是没有用:
private void studentBindingNavigatorSaveItem_Click(object sender, EventArgs e)
{
UE.SaveChanges();
}
我知道这是一个旧线程,但是在这里我没有答案也面临着同样的问题。
此行中断了DataSource与上下文的连接:
studentBindingSource.DataSource = UE.Students.ToList();
更改为:
studentBindingSource.DataSource = UE.Students;
但是会引发异常,因此我将其绑定到本地数据:
studentBindingSource.DataSource = UE.Students.Local;
另外,在绑定之前,您还需要确保已填充本地数据。
请定义“无效”。 数据是否至少被推送到基础实体?
我记得那些“轻量级”工具栏按钮存在一些问题,因为它们不会引起焦点丢失,因此在数据网格上没有进行任何验证。
在调用UE.SaveChanges()之前,请尝试通过以下方式强制验证:
this.Validate();
希望这可以帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.