我正在为我们公司创建的每个订单的“订单列表”添加新行到数据库中,使用firebird ado.net客户端。我编写的代码可以很好地列出项目,但是插入新的代码不会出现在其他地方(例如在flamerobin中)。我认为正在发生的是事务没有被提交,因为它在我的代码中得到了认可(不能添加重复的值)。代码:
using (FbConnection fbCon = new FbConnection)
{
fbCon.Open();
***command w/ parameterised command string***
using (FbTransaction fbTrans = fbCon.BeginTransaction())
using FbCommand orderCommand = new FbCommand(cmdString, fbCon, fbTrans)
{
***Adding parameters and values***
try
{
int recordsAffected = orderCommand.ExecuteNonQuery();
fbTrans.Commit();
}
catch (FbException E)
{
fbTrans.Rollback();
fbCon.Close();
throw E
}
}recordsAffected返回1,但我无法在flamerobin或db管理程序中看到更新的值。我是不是遗漏了什么?
发布于 2016-01-18 21:27:08
如果其他人遇到此问题,则在Visual的调试设置中。https://visualstudiomagazine.com/blogs/tool-tracker/2012/05/dealing-with-local-databases-or-why-your-updates-dont-stick.aspx解释得很清楚,但是VS基本上是在项目的bin/Debug中复制数据库(表面上是为了不弄乱您的数据),但是如果您确实需要在外部使用/查看数据,可以将您的外部应用程序链接到调试数据库(例如flamerobin)。如果希望保留更新,还可能需要将项目数据库设置设置为复制,因为每次运行c#应用程序时,默认设置都会将数据库复制到文件夹中。
https://stackoverflow.com/questions/34846155
复制相似问题