ODBC事务不回滚

时间:2015-05-08 04:52:42

标签: c# wpf database odbc

我已经在我的wpf c#应用程序中引用了this来执行回滚操作。我尝试的代码如下:

using (OdbcConnection connection = new OdbcConnection("connectionString"))
        {
            OdbcCommand command = new OdbcCommand();
            OdbcTransaction transaction = null;
            command.Connection = connection;
            try
            {
                connection.Open();
                transaction = connection.BeginTransaction();

                command.Connection = connection;
                command.Transaction = transaction;

                command.CommandText = "INSERT INTO TableA (A, B, C) VALUES (10,10,10)";
                command.ExecuteNonQuery();
                command.CommandText = "NSERT INTO TableB (D,E,F) VALUES (20,20,20)";
                command.ExecuteNonQuery();
                transaction.Commit();
            }
            catch(Exception ex)
            {
                Console.WriteLine(ex.Message);
                try
                {
                    transaction.Rollback();
                }
                catch
                {

                }
            }

故意第二次查询错误。我的意图是当我在调用transaction.Rollback()时进入catch块时,由于执行了Rollback被调用,因此在TableA中执行第一个查询时添加的值没有反映出来。但是,这不是回滚的值并且存在于TableA中。我在网上搜索了各种资源但没有运气。我不能使用SqlConnection而不是OdbcConnection我的应用程序不支持。是否有任何关于这个或替代方法的工作可以实现我的想法。请帮帮我。

1 个答案:

答案 0 :(得分:0)

你基本上有MSDN例子。我曾经遇到过ODBC的另一个问题,问题出在ODBC供应商驱动程序上。我强烈建议检查这种可能性。