[英]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.