138 / 5 / 1
Регистрация: 25.03.2013
Сообщений: 228
1
MS SQL

Как откатить транзакцию?

09.11.2014, 14:54. Показов 1952. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пишу програму на шарпе + mssql2014. сообственно вопрос: как начать и закончить(откатить) транзакцию?
надо сделать так, что начинаеться транзакция, потом делаються действия над 2 таблицами(делаю запросы через разные tableAdaptor), потом делаю commit(или rollback).
я сделал для одного тейбладаптора 3 метода которые отправляют запросы(begin, commit, rollback). begin отправился нормально, а вот когда делаю commit, то ошибка что нет начатой транзакции.
Как можно решить даную проблему?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.11.2014, 14:54
Ответы с готовыми решениями:

Как сделать транзакцию в БД mssql
Как осуществить транзакцию в MS SQL Server с использованием OleDb ? Есть несколько запросов:...

Как организовать транзакцию?
Необходимо синхронно изменять два документа. Как обеспечить надежность сего процесса? Например,...

Как изменить ,дополнить имеющуюся транзакцию ?
Добрый вечер ! просит помощи человек не имеющий достаточного опыта в сап. мне нужно дополнить...

Как создать транзакцию с принимаемыми параметрами?
вот хранимые процедуры понятно, как делать CREATE PROCEDURE sp_proc @param INT //тут как бы...

2
311 / 309 / 125
Регистрация: 29.01.2013
Сообщений: 638
Записей в блоге: 1
09.11.2014, 18:01 2
Лучший ответ Сообщение было отмечено o33ik как решение

Решение

Дык
C#
1
2
3
SqlTransaction transaction = connection.BeginTransaction();
//...
transaction.Commit(); // transaction.Rollback();
0
2 / 2 / 4
Регистрация: 20.06.2014
Сообщений: 20
10.11.2014, 07:51 3
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 SqlTransaction transaction = con.BeginTransaction(IsolationLevel.ReadCommitted);
        switch (FinOper)
                {
                   case "15":
                        SqlCommand command1504 = new SqlCommand();
                        command1504.CommandText = Environment.NewLine + 
                        "Update OperJurnal SET status=3,Shtamp='"+ StatusShtamp1501 + "' WHERE ShtampUsers='" + ShtampUsers + "'";
                        command1504.Connection = con;
                        command1504.Transaction = transaction;
                            try
                            {
 
                                if (P0 == "")
                                {
                                    command1504.ExecuteNonQuery();
                                    transaction.Commit();
 
                                }
                            catch (Exception err)
                            {
                                transaction.Rollback();
                                //MessageBox.Show(err.Message, "Ошибка 1501", MessageBoxButtons.OK,      MessageBoxIcon.Exclamation);
                                richTextBox1.Text += "Ошибка 1501 " + err.Message;
                                sw = new StreamWriter("tranz_barq.log", true); // true - добавлять инф. , false - создать новый
                                sw.WriteLine(DateTime.Now + "Ошибка 1501 " + command1501.CommandText + err.Message);
                                sw.Close();
                            }
                            break;
}
0
10.11.2014, 07:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.11.2014, 07:51
Помогаю со студенческими работами здесь

Как правильно добавить в код транзакцию?
Здравствуйте! Не получается правильно расставить части транзакции. Получается так, что до первого...

Как правильно сделать транзакцию? ADO
Подскажите как реализовать транзакцию при помощи ADO и чтоб выдавало сообщения при отсутствии...

Как откатить изменения
Как откатить изменения сохраненного документа? По активности пользователя как то можно сделать? И...

Как откатить Windows 8.1 до 8.0
Ноутбук HP была установлена 8, обновил до 8.1 которая меня не устроила. При попытке откатить до...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru