У меня есть проект Visual Studio 2008 C # .NET 3.5, использующий MySql 5.1.53 и MySql Connector / Net 6.4.4.
'protocol_version', '10'
'version', '5.1.53-community-log'
'version_comment', 'MySQL Community Server (GPL)'
'version_compile_machine', 'unknown'
'version_compile_os', 'Win64'
Я создаю таблицу в своей базе данных следующим образом.
using (MySqlConnection c = new MySqlConnection(connection_string))
{
c.Open();
using (MySqlCommand cmd = c.CreateCommand())
using (MySqlTransaction xt = c.BeginTransaction())
{
cmd.Connection = c;
cmd.Transaction = xt;
try
{
cmd.CommandText =
@"CREATE TABLE `my_table` (
...
) ENGINE=InnoDB AUTO_INCREMENT=72 DEFAULT CHARSET=latin1";
cmd.ExecuteNonQuery();
throw new System.Exception("This is a simulated failure!!!");
xt.Commit();
}
catch
{
xt.Rollback();
throw;
}
}
}
Но после смоделированной ошибки таблица все еще существует в моей базе данных.Мне нужно сделать, чтобы транзакция откатилась правильно?