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

时间:2015-07-23 06:25:06

标签: c# datagridview entity-framework-5

我正在尝试将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();
        }

2 个答案:

答案 0 :(得分:1)

我不知道如果你想进行插入或更新,

例如,如果您想保存(插入)卖家名称,您需要调用卖家类并指向类卖家中的名称,最后告诉DbContext保存它

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

更新会有所不同,

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

要从datagridview中保存de数据,你需要在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();
祝你好运!

答案 1 :(得分:0)

{{1}}