Мне нужно создать 2 кнопки, одну для начала транзакции (startButton
) и одну для совершения транзакции (commitButton
).Как использовать DataAdapter с SqlTransaction в C#?
Я застрял, пытаясь реализовать его для команды SELECT
.
Когда я нажимаю commitButton
, я получаю сообщение о том, что транзакция уже завершена и больше не используется.
public void startTransaction(IsolationLevel isolationLevel) {
connectSQL();
connection.Open();
transaction = connection.BeginTransaction(isolationLevel);
Console.WriteLine("Transaction started !");
}
public void commitTransaction() {
this.transaction.Commit();
connection.Close();
Console.WriteLine("Transaction commited !");
}
public DataTable readAllRezervari() {
try {
String selectSql = "SELECT * FROM Rezervari;";
SqlCommand sqlCommand = new SqlCommand(selectSql, connection, transaction);
rezervariDataAdapter.SelectCommand = sqlCommand;
rezervariDataAdapter.Fill(rezervariDataSet, "Rezervari");
}
catch (Exception e) {
Console.WriteLine("ERROR: " + e);
try {
transaction.Rollback();
}
catch (Exception e2) {
Console.WriteLine("ERROR: " + e2);
}
}
finally {
connection.Close();
}
rezervariDataTable = rezervariDataSet.Tables["Rezervari"];
return rezervariDataTable;
}
Я думаю, что это не достижимый таким образом, что вам нужно для временного хранения данных и использовать транзакцию только в методе SAVE. – Sunny
Возможно, время ожидания подключения. –
Любое другое решение о том, как разделить транзакцию на команду select на две части (startTransaction, commitTransaction)? без dataAdapter – Mythul