首页 新闻 会员 周边

事务 创建和使用

0
悬赏园豆:20 [已解决问题] 解决于 2010-02-09 11:59

做一个简单的购物车结算,要更新商品状态,插入购买记录,扣除用户账户金额~

事务要怎么写?

在程序里要怎么调用事务?

xmao-xmao的主页 xmao-xmao | 初学一级 | 园豆:69
提问于:2010-02-08 16:13
< >
分享
最佳答案
0
using (SqlConnection conn = new SqlConnection(DbHelperSQL.connectionString))
{
conn.Open();
SqlTransaction tran
= conn.BeginTransaction();
SqlCommand cmd
= new SqlCommand();
cmd.Transaction
= tran;
cmd.Connection
= conn;
try
{
//事务操作开始
string sql = string.Format("insert..")
cmd.CommandText
= sql;
cmd.ExecuteNonQuery();
//事务操作结束
tran.Commit();
}
catch (Exception ex)
{
tran.Rollback();
throw ex;
}
finally
{
conn.Close();
}

}

sqlserver 事务的程序调用。是不是你要的啊?

收获园豆:20
邢少 | 专家六级 |园豆:10926 | 2010-02-08 16:45
那要怎在一个事务里做,做多个表的操作,放在一个for里循环执行?
xmao-xmao | 园豆:69 (初学一级) | 2010-02-08 18:51
@饥饿的菜鸟: 直接在cmd.commandtext=“”;这sql语句操作不同的表就可以了。 你可以执行多次,比如: string sql = string.Format("insert..") cmd.CommandText = sql; cmd.ExecuteNonQuery(); sql = string.Format("update..") cmd.CommandText = sql; cmd.ExecuteNonQuery();
邢少 | 园豆:10926 (专家六级) | 2010-02-09 10:04
其他回答(1)
0

可以写在一个存储过程里面, 在存储过程中添加Tran commit rollback三个来控制

风浪 | 园豆:2996 (老鸟四级) | 2010-02-08 18:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册