如何更新Entity Framework中的数据?

时间:2014-03-05 08:58:17

标签: c# entity-framework

我必须更新数据库中的数据。我选择数据网格视图行时,数据显示在文本框中。我哪里错了?

private void btnUpdate_Click(object sender, EventArgs e)
{
    ent = new EmployeeEntities();

        EmployeeInfo emp = new EmployeeInfo();
        emp.EmpID = Convert.ToInt32(txtID.Text);
        emp.EmpName = txtName.Text;
        emp.EmpAddress = txtAddress.Text;
        emp.EmpDesignation = txtDesignation.Text;
        //ent.EmployeeInfoes.Add(emp);
        ent.SaveChanges();
        MessageBox.Show("Updated");

}

3 个答案:

答案 0 :(得分:2)

您希望保存的实体必须附加到数据上下文,以便在调用SaveChanges时保存。如果调用ent.SaveChanges()调用上下文SaveChanges(),则只需使用ent.EmployeeInfoes.Add(emp);。如果没有,您需要先从数据库中检索EmployeeEntities,然后添加EmployInfo

答案 1 :(得分:1)

替换

EmployeeInfo emp = new EmployeeInfo();

通过

int empId=Convert.ToInt32(txtID.Text);
EmployeeInfo emp =ent.EmployeeInfoes.Single(e=>e.EmpId==empId);

答案 2 :(得分:0)

如果您尝试将emp添加为新员工,请尝试

ent.EmployeeInfoes.AddObject(emp);
ent.SaveChanges();

否则你必须从员工名单中获取emp然后保存