Table_UserInfo user = new Table_UserInfo();
/*....user属性赋值......*/
oa.Table_UserInfo.Attach(user);
oa.Entry(userTemp).State = System.Data.EntityState.Modified;
try
{
oa.SaveChanges();
Response.Write("<script>alert('修改成功')</script>");
}
catch (DbEntityValidationException dbEx)
{
Response.Write("<script>alert('出现异常,修改失败!')</script>");
return;
}
为什么总是修改不成功,运行没有错,提示的是修改成功,但数据库中的数据并没有任何变化。
------解决方案--------------------
Table_UserInfo user = new Table_UserInfo();
你这是new一个新的对象出来了,怎么可能修改成功呢?
EF的修改逻辑是: 先取后改!
int id=1;
Table_UserInfo user = oa.Table_UserInfo.Find(id);
------解决方案--------------------
根据你的代码var userTemp = oa.Table_UserInfo.Where(p => p.U_Login_Name == U_lgname.Text.Trim()).FirstOrDefault();,你的操作是从数据源重新查询一次,然后再保存到数据库。也就是说没看到你在哪个地方改过数据。