Как управлять несколькими транзакциями в SQL Server 2005 - PullRequest
0 голосов
/ 23 августа 2011

Я разрабатываю настольное приложение на C # с бэкэндом SQL Server 2005.

Я хочу вставить строки в две таблицы, в table1 будет сохранена одна строка, а в table2 одновременно будет сохранено более 100 строк.

Я хочу, чтобы во время сохранения и между ним в случае сбоя питания или по какой-либо причине программа завершилась, тогда незавершенная транзакция не должна сохраняться в базе данных; но если транзакция завершается успешно, ее следует сохранить в базе данных.

Я использую Connection.BeginTransaction() методы

 clsData dSave = new clsData();
 dSave.Open(); // 
 System.Data.SqlClient.SqlTransaction tr = dSave.Connection.BeginTransaction();

clsData - это класс, в котором некоторые переменные объявлены как SqlConnection, SqlCommand, SqlAdapter, в этом классе объявлена ​​переменная с именем Connection и метод Open() объявлен в этом классе, который открывает соединение.

Сложность заключается в том, что после 10-20 команд tr.Connection внезапно становится нулевым, где мое соединение все еще открыто.

Кто-нибудь может помочь мне с этой проблемой.

1 Ответ

3 голосов
/ 23 августа 2011
  • Использовать вызов хранимой процедуры
  • Использование XML или табличных параметров для передачи данных
  • Управление транзакциями в SQL Server

Не совершать 100+ звонков на сервер базы данных в транзакции на стороне клиента

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...