C# Ado.net firebird提交将新行插入表

C# Ado.net firebird提交将新行插入表,c#,sql,transactions,firebird,rdbms,C#,Sql,Transactions,Firebird,Rdbms,我正在使用firebird ado.net客户端为我们公司创建的每个订单的“订单列表”的数据库添加新行。我编写的代码可以很好地列出项目,但是插入新项目不会出现在其他地方(例如在flamerobin中)。我认为正在发生的是事务没有被提交,因为它在我的代码中被识别(不能添加重复的值)。 代码: recordsAffected返回1,但我无法在flamerobin或db管理程序中看到更新的值。我遗漏了什么吗?如果其他人遇到此问题,则它位于Visual Studio的调试设置中。解释得非常清楚,但基本上

我正在使用firebird ado.net客户端为我们公司创建的每个订单的“订单列表”的数据库添加新行。我编写的代码可以很好地列出项目,但是插入新项目不会出现在其他地方(例如在flamerobin中)。我认为正在发生的是事务没有被提交,因为它在我的代码中被识别(不能添加重复的值)。 代码:


recordsAffected返回1,但我无法在flamerobin或db管理程序中看到更新的值。我遗漏了什么吗?

如果其他人遇到此问题,则它位于Visual Studio的调试设置中。解释得非常清楚,但基本上VS会在项目的bin/Debug中复制数据库(表面上不会弄乱数据),但如果您确实需要在外部使用/查看数据,则可以将外部应用程序链接到调试数据库(例如flamerobin)。如果希望更新保持不变,您可能还需要将项目数据库设置设置为“复制”(如果更新),因为默认设置会在每次运行c#app时将数据库复制到文件夹中

请确保在“其他程序”中也启动了新事务-否则他们可能正在使用旧事务(在您添加记录之前启动),而这些事务看不到新记录。谢谢您的建议,但我已经尝试过了。问题是事务返回时没有错误,但似乎没有提交。我想是ado.net客户端还是Visual Studio中保持连接打开的东西?还有其他人用过这些吗?
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
    }
}