我需要創建2個按鈕,一個用於啓動事務(startButton
),另一個用於提交事務(commitButton
)。如何在C#中使用DataAdapter和SqlTransaction?
我試圖執行它的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;
}
我想是不是可以實現這種方式,你需要臨時存儲的數據,僅在保存方法使用事務。 – Sunny 2013-05-10 20:24:28
可能是連接超時。 – 2013-05-10 20:32:03
關於如何將select命令的事務拆分爲2部分(startTransaction,commitTransaction)的其他解決方案?沒有dataAdapter – Mythul 2013-05-10 20:36:08