您的位置:首页 > 其它

关于事务的一个问题

2011-11-08 14:41 260 查看
本篇作为事务运用时的一个小知识,废话不多说,直接入题了。

这里先抛一个问题,下面是我起初写的代码:

View Code

//创建一个新的连接
SqlConnection ConnTran = CommFun.CreateConn();
//连接打开
ConnTran.Open();
//使用新连接开始事务
SqlTransaction transaction = ConnTran.BeginTransaction();
//创建命令对象
SqlCommand command = new SqlCommand();

//新的连接和事务绑定同一个命令对象
command.Connection = ConnTran;
command.Transaction = transaction;
try
{
string strSql = "Select Top 1 Id, OrderId,C_Name,C_Mtel,C_Address From Pro_Order_List";
//这里使用旧的连接执行查询,不用事务控制
SqlDataReader dataReader = new SqlCommand(strSql, conn).ExecuteReader();
while (dataReader.Read())
{
if (dataReader["OrderId"] != null || dataReader["OrderId"] != DBNull.Value)
{
//更新商品表,这里为测试用,没有实际业务意义
command.CommandText = "Update Order_Pro_List Set OrderId = OrderId where OrderId = "
+ dataReader["OrderId"].ToString();

command.ExecuteNonQuery();
}
}
//关闭dataReader
dataReader.Close();
//提交事务
transaction.Commit();
}
catch
{
//事务回滚
transaction.Rollback();
}
finally
{
//释放资源
transaction.Dispose();
transaction = null;
//新连接关闭
ConnTran.Close();
}


-------------------------------------------------------------结束-----------------------------------------------------------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: