对于一个应用软件系统,并发操作是一个不得不面对的难题,并发性对系统有极大的危害性,如果系统开发人员不能平衡这些并发请求,当同时执行这些操作时,可能造成数据的不一致,甚至造成系统的崩溃。
1、并发性
并发性是指两个或多个事件在同一时间间隔内发生。
2、事务
事务是SQL Server中的单个逻辑单元,一个事务内的所有语句被作为一个整体执行。
3、回滚
回滚简单的说就是泛指程序更新失败, 返回上一次正确状态的行为。
在SQL Server中可以通过BEGIN TRANSACTION开始一个事务,提交事务可以使用COMMIT TRANSACTION 语句,回滚事务,可以执行ROLLBACK TRANSACTION 语句。
程序代码如下所示:
string strConn = "。。。。。";
SqlConnection Conn = new SqlConnection(strConn);
SqlTransaction myTran;
SqlCommand cmd1, cmd2, cmd3;
string strSql;
Conn.Open();
myTran = Conn.BeginTransaction();
try
{
strSql = "INSERT INTO Customers(CustomerID,CompanyName)" +
"VALUES('BDCOM','Baidu Comapny')";
cmd1 = new SqlCommand(strSql, Conn);
cmd1.Transaction = myTran;
cmd1.ExecuteNonQuery();
strSql = "INSERT INTO Orders(CustomerID) VALUES('BDCOM')";
cmd2 = new SqlCommand(strSql, Conn);
cmd2.Transaction = myTran;
cmd2.ExecuteNonQuery();
myTran.Commit();
}
catch
{
myTran.Rollback();
}
finally
{
Conn.Close();
}