SQLiteConnection sqConnection = dataProvider.GetDbConnection(); sqConnection.Open(); SQLiteCommand sqCommand = new SQLiteCommand(); SQLiteTransaction myTrans; // Start a local transaction myTrans = sqConnection.BeginTransaction(System.Data.IsolationLevel.Serializable); // Assign transaction object for a pending local transaction sqCommand.Connection = sqConnection; sqCommand.Transaction = myTrans; try { for (int i = 0; i < n; i++) { sqCommand.CommandText = "Insert into Dept(DeptNo, DName)Values(@DeptNo, @DName)"; sqCommand.Parameters.Add(new SQLiteParameter("@DeptNo", i)); sqCommand.Parameters.Add(new SQLiteParameter("@DName",”DEVELOPMENT”)); sqCommand.ExecuteNonQuery(); } myTrans.Commit(); } catch (Exception e) { myTrans.Rollback(); Error = String.Format("Neither record was written to database,Details:{0}", e.ToString()); } finally { sqConnection.Close(); }
public
static
void RunSQLiteTransaction(string myConnString) {
using (SQLiteConnection sqConnection = new SQLiteConnection(myConnString)) {
sqConnection.Open();
// Start a local transaction
SQLiteTransaction myTrans = sqConnection.BeginTransaction(System.Data.IsolationLevel.ReadCommitted);
SQLiteCommand sqCommand = sqConnection.CreateCommand();
try {
sqCommand.CommandText = "INSERT INTO Dept(DeptNo, DName) Values(52, ‘DEVELOPMENT‘)";
sqCommand.ExecuteNonQuery();
sqCommand.CommandText = "INSERT INTO Dept(DeptNo, DName) Values(62, ‘PRODUCTION‘)";
sqCommand.ExecuteNonQuery();
myTrans.Commit();
Console.WriteLine("Both records are written to database.");
}
catch (Exception e) {
myTrans.Rollback();
Console.WriteLine(e.ToString());
Console.WriteLine("Neither record was written to database.");
}
finally {
sqCommand.Dispose();
myTrans.Dispose();
}
}
}
原文:http://www.cnblogs.com/zeroone/p/3614584.html
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!