asp.net创建事务的方法
1、建立List用于存放多条语句
///<summary> ///保存表单 ///</summary> ///<paramname="context"></param> protectedvoidsave() { List<string>list=newList<string>(); list.Add(string.Format("insertintopicsone(model,idser,idflg,lmuser,lmdate,lmtime)values('{0}','{1}','{2}','{3}',{4},{5})","T1002","Y","N","U001",20161103,140025)); list.Add(string.Format("insertintopicstwo(model,idser,idflg,lmuser,lmdate,lmtime)values('{0}','{1}','{2}','{3}',{4},{5})","T1002","Y","N","U001",20161103,140025)); boolbol=ExecuteTransaction(list); if(bol) { MessageBox.Show("保存成功!"); } else { MessageBox.Show("保存失败!"); } }
2、调用ExecuteTransaction方法,并返回返回值true为成功,false为失败,语句并回滚
///<summary> ///执行语句 ///</summary> ///<paramname="list"></param> ///<returns></returns> privateboolExecuteTransaction(List<string>list) { using(SqlConnectionconnection=newSqlConnection(ConfigurationManager.AppSettings["LocalConnectionString"].ToString())) { SqlCommandcommand=newSqlCommand(); SqlTransactiontransaction=null; try { connection.Open(); transaction=connection.BeginTransaction(); command.Connection=connection; command.Transaction=transaction; for(inti=0;i<list.Count;i++) { command.CommandText=list[i]; command.ExecuteNonQuery(); } transaction.Commit(); connection.Close(); returntrue; } catch { transaction.Rollback(); connection.Close(); returnfalse; } } }