Я пишу приложение C#, где я вставляю значения в таблицы Mssql и Mysql. Без Mssql.If сервер Mssql не отключается, он не вставляет это значение в таблицу Mssql.MySQL вставляет строку, даже если отключен
Но в Mysql, если сервер Mysql отключается во время операции вставки, значение иногда вставляется. Исключение MysqlException происходит в случае отключения сервера Mysql, но иногда это значение вставлено.
Вот отрывок из кода:
try
{
mysqlConn.Open();
MySqlCommand command = new MySqlCommand();
command.Connection = mysqlConn;
command.CommandText = //INSERT INTO TABLE
command.ExecuteNonQuery();
}catch (MySqlException ex){
Console.WriteLine("MYSQL Exception: " + ex.Message);
}catch (Exception ex){
Console.WriteLine("MYSQL Exception: " + ex.Message);
}finally{
mysqlConn.Close();
}
Как я могу гарантировать, что значение вставляется в Mysql таблицы, только если нет отключения во время работы и не вставляется, если есть отключение во время операции?
Я удивлен, что соединение будет очень часто теряться за время, затрачиваемое на простую вставку, и что оно все равно будет вставлено, если оно отключится. Возможно, вставка в явную транзакцию поможет. В противном случае, возможно, вам нужно будет выбрать данные, чтобы проверить, правильно ли они были добавлены? – Rhumborl
@Rhumborl Я запускаю командные файлы с C#, чтобы отключать Mssql и Mysql с разными интервалами в произвольные моменты времени, чтобы проверить, работает ли программа, даже если базы данных отключены. Если Mysql отключен во время работы, он не выполняет операцию вставки в обратном порядке, а с Mssql I haven ' t столкнулся с какой-либо проблемой. Я попытался выбрать данные после операции вставки, но все же, если есть отключение во время операции выбора, оно не будет работать правильно. Вы имеете в виду, что я должен написать транзакцию в Mysql и вызвать ее из C#, чтобы Mysql отключал соединение? – freelancer86