当只是使用一次事务时,只用简单的事务就可以了
示例代码:
SqlServerDataBase obj = new SqlServerDataBase();
SqlConnection conn = obj.DBconn();
conn.Open();
SqlTransaction myTrans;
myTrans = conn.BeginTransaction(IsolationLevel.ReadCommitted);
try
{
obj.Insert("insert into StuInfo (StuNumber,Name,Sex,Specialty) values('" + stuNumber + "','" + name + "','" + sex + "','" + specialty + "')", null);
obj.Insert("insert into StuSkill(StuNumber,Skill) values('" + stuNumber + "','" + skill + "')", null);
myTrans.Commit();
Response.Write("两条数据均插入到数据库中!");
}
catch (Exception ex)
{
try
{
myTrans.Rollback();
}
catch (SqlException sqlEx)
{
if (obj.DBconn() != null)
{
Response.Write(sqlEx.GetType()+"数据库打开失败");
Response.Redirect("submit.htm");
}
}
}
finally
{
obj.DBconn().Close();
}
但是设计多个事务处理,比方使用for循环时,处理不当就会产生“SqlTransaction 已完成;它再也无法使用”的问题,主要就是因为SqlTransaction 使用了Commit()后就是不能在使用了,必须重新BeginTransaction()一个。
网络转载