Транзакции C# MySQL не работаютC#

Место общения программистов C#
Ответить
Anonymous
 Транзакции C# MySQL не работают

Сообщение Anonymous »

Я хочу понять, как работает транзакция, и думаю, что что-то упускаю.
Я хочу начать добавлять несколько строк в цикл, и когда i == 5 я хочу отменить транзакции.

Основная проблема в том, что он не откатывается.

Код: Выделить всё

MySqlConnection conn2 = new MySqlConnection("server=127.0.0.1;uid=root;pwd=;database=dbtest;");
conn2.Open();
MySqlCommand command2 = conn2.CreateCommand();
MySqlTransaction trans;
trans = conn2.BeginTransaction();
command2.Transaction = trans;

try
{
for (int i = 0; i < 10; i++)
{
command2.CommandText = "INSERT INTO test (col1, col2, col3) VALUES ('1','1','1')";
command2.ExecuteNonQuery();

if (i == 5)
{
throw new Exception();
}
}
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
trans.Rollback();
}
Я пробовал добавить SET autocommit = 0 и trans.Commit() в разных местах, но это все равно не сработало.

Тогда я решил попробовать базу данных MySQL:

Код: Выделить всё

START TRANSACTION;
INSERT INTO test (col1, col2, col3) VALUES ('1','1','1')
//also with COMMIT here
ROLLBACK;
Это тоже не работает. Я пробовал читать различные руководства, проверял официальную страницу MySQL на предмет транзакций, но прогресса все равно нет.

Подробнее здесь: https://stackoverflow.com/questions/311 ... ot-working
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»