【发布时间】:2013-05-17 18:56:20
【问题描述】:
我正在尝试将数据保存到我的数据库中。我想要的是,当按下按钮时,数据会永久保存到数据库中。我已经完成了在应用程序运行时保存代码的测试。保存的数据是可见的。但是当我终止应用程序时,当我在 Visual Studio 中查看该表的数据时,数据不存在。我提供了用于测试的代码。
private void btn_otrFun_Click(object sender, EventArgs e)
{
tblCheese cheese = new tblCheese();
string cheesename = "TestCheese";
cheese.CheeseName = cheesename;
cheese.CheeseGroup = 1;
cheeseEntity.tblCheese.AddObject(cheese);
cheeseEntity.SaveChanges();
}
这是我获取上下文表单的地方。它在表单的开头被实例化。
private CheeseWorld_DatabaseEntities cheeseEntity = new CheeseWorld_DatabaseEntities(); //instanciate new database entities
此外,我还使用这个 sn-p 从数据库中检索数据以动态创建按钮。
var cheeselist = cheeseEntity.ExecuteStoreQuery<tblCheese>("Select * FROM tblCheese WHERE cheeseGroup = 1", null).ToList();
希望这些进一步的细节有所帮助。如果需要更多,请告诉我。
【问题讨论】:
-
尝试返回一个
int,其中包含受影响的行数:int rows = cheeseEntity.SaveChanges(),以确保您确实在更新表。此外,您可能希望将SaveOptions参数设置为AcceptAllChangesAfterSave。 -
可能是你的鼠标有问题?
-
听从 Evan 的建议,我将最后一行更改为 int rows = cheeseEntity.SaveChanges(SaveOptions.AcceptAllChangesAfterSave);更改仍未显示在数据库中。当我查看 tblcheese 的表数据时,我之前拥有的条目已经存在,但新条目不存在。虽然,它出现在应用程序中。这让我很困惑。
标签: c# database entity-framework insert sql-update