Ado.net firebird commit 插入新行到 table
Ado.net firebird commit insert new lines to table
我正在使用 firebird ado.net 客户端为我们公司 "order list" 的每个创建订单的数据库添加新行。我编写的代码可以很好地列出项目,但插入新项目不会出现在其他地方(例如在 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 returns 1 但我无法在 flamerobin 或数据库管理程序中看到更新的值。我错过了什么吗?
如果其他人 运行 遇到这个问题,它在 Visual Studio 的调试设置中。 https://visualstudiomagazine.com/blogs/tool-tracker/2012/05/dealing-with-local-databases-or-why-your-updates-dont-stick.aspx 解释得很清楚,但基本上 VS 在项目的 bin/Debug 中复制了你的数据库(表面上是为了不弄乱你的数据)但如果你实际上需要 use/view 外部数据,或者 link 您的外部应用程序到调试数据库(例如 flamerobin)。如果您希望保留更新,您可能还需要将项目数据库设置设置为 Copy if Newer,因为默认设置会在每次 运行 您的 c# 应用程序时将数据库复制到文件夹中。
我正在使用 firebird ado.net 客户端为我们公司 "order list" 的每个创建订单的数据库添加新行。我编写的代码可以很好地列出项目,但插入新项目不会出现在其他地方(例如在 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 returns 1 但我无法在 flamerobin 或数据库管理程序中看到更新的值。我错过了什么吗?
如果其他人 运行 遇到这个问题,它在 Visual Studio 的调试设置中。 https://visualstudiomagazine.com/blogs/tool-tracker/2012/05/dealing-with-local-databases-or-why-your-updates-dont-stick.aspx 解释得很清楚,但基本上 VS 在项目的 bin/Debug 中复制了你的数据库(表面上是为了不弄乱你的数据)但如果你实际上需要 use/view 外部数据,或者 link 您的外部应用程序到调试数据库(例如 flamerobin)。如果您希望保留更新,您可能还需要将项目数据库设置设置为 Copy if Newer,因为默认设置会在每次 运行 您的 c# 应用程序时将数据库复制到文件夹中。