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# 应用程序时将数据库复制到文件夹中。