簡體   English   中英

ODBC事務不會回滾

[英]ODBC transaction does not roll back

我已經將此引用在我的wpf c#應用程序中執行回滾操作。 我嘗試過的代碼如下:

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,我的應用程序不支持該功能。 是否有任何圍繞此方法或替代方法的工作可以實現我的想法。 請幫幫我。

您基本上有MSDN示例。 我曾與ODBC再次遇到問題,而該問題與ODBC供應商驅動程序有關。 我強烈建議您檢查這種可能性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM