将数据网格视图更改保存到数据库实体框架

本文关键字:保存 数据库 实体 框架 数据 数据网 网格 视图 | 更新日期: 2023-09-27 18:04:15

我试图将datagridview与实体框架绑定,并希望将datagridview更改保存回数据库。但没有成功。我做了一些研究,发现下面的代码为sol。但对我来说,这是行不通的。这个帖子我看了差不多3年了。也许下面的逻辑已经过时了。有什么建议吗?我用的是EF5。

AmzEntities amz;
        public SellerSettings()
        {
            InitializeComponent();
        }
        private void SellerSettings_Load(object sender, EventArgs e)
        {
            amz = new AmzEntities();
            AmzEntities context = new AmzEntities();
            context.Sellers.Load();
            dataGridView1.DataSource = context.Sellers.Local.ToBindingList(); ;
        }
        private void buttonSave_Click(object sender, EventArgs e)
        {
            amz.SaveChanges();
        }

将数据网格视图更改保存到数据库实体框架

我不知道你是想插入还是更新

例如,如果你想保存(插入)一个卖家的名字,你需要调用sellers类,并在类sellers中指向这个名字,最后告诉DbContext保存它

        AmzEntities context = new AmzEntities();
        Sellers _sellers = new Sellers();
        _sellers.name= "Jhon Abdullah";
        context.Sellers.Add(_sellers);
        context.SaveChanges();

update会有点不同,

        var updateQuery = (from sellers1 in context.Sellers 
                           where Sellers.name== "Jhon Abdullah"
                           select sellers1).FirstOrDefault();
        updateQuery.name = "Jack Abdullah";
        ExEnt.SaveChanges();

从datagridview中保存数据,你需要在datagridview中找到数据,可以用索引和GridViewRow来完成,取决于你的datagridview结构和它被访问的地方_rowCommand等。

rowCommand

示例
            int index = Convert.ToInt32(e.CommandArgument);
            GridViewRow gvRow = dataGridView1.Rows[index];
            Label lblName = (gvRow.FindControl("lbl_name") as Label);
            AmzEntities context = new AmzEntities();
            Sellers _sellers = new Sellers();
            _sellers.name= lblName.Text;
            context.Sellers.Add(_sellers);
            context.SaveChanges();

祝你好运!

    DataContext db = new DataContext();
    public SupliersForm()
    {
        InitializeComponent();

        supliersDG.DataSource = db.Supliers.Local.ToBindingList();
        db.Supliers.Load();
    }
    private void SaveBtn_Click(object sender, EventArgs e)
    {
        supliersDG.EndEdit();
        db.SaveChanges();
    }