在事务处理过程中,一个事务总是要和一个SqlCommand关联,
格式:
SqlTransaction myTran = cardbConnection.BeginTransaction();
SqlCommand Cmd = cardbConnection.CreateCommand();
Cmd.Transaction = myTran;----->要关联起来
try{
要执行的语句; ----------->---------------------------------------------------
问题在这里,这里执行的sql语句,必须全部通过与事务关联的Cmd来执行,
若是再定义一个该链接的SqlCommand 变量,执行语句时就会出现异常?????
----------->--------------------------------------------------- 最后提交;
}
catch()
{ 回滚
}
我想要是事务格式是:
事务开始;
try{
中间是操作数据库的多条语句;----> 就是这里事务把所有合法的操作都包含起来,
但不与特定的SqlCommand 关联
事务正常提交;
}
catch(){
事务回滚
}我该怎么实现????为了更好的说明问题,给一个示例:
SqlTransaction myTran;
myTran = centerConnection.BeginTransaction();
SqlCommand deleteCarTesterCmd = centerConnection.CreateCommand();
deleteCarTesterCmd.Transaction = myTran;
SqlCommand carCmd = centerConnection.CreateCommand();
try {
deleteCarTesterCmd.CommandText = "delete from test";
deleteCarTesterCmd.ExecuteNonQuery(); carCmd.CommandText = "delete from test"; ---如果有这两句,就会出现异常??
carCmd.ExecuteNonQuery(); ---我知道这里可以用deleteCarTesterCmd代替carCmd,
---但这里就是为了说明问题,为什么会有异常呢??
myTran.Commit();
MessageBox.Show("ok");
}
catch (Exception ex)
{
myTran.Rollback();
MessageBox.Show("回滚");
}
高手指点啊。。
格式:
SqlTransaction myTran = cardbConnection.BeginTransaction();
SqlCommand Cmd = cardbConnection.CreateCommand();
Cmd.Transaction = myTran;----->要关联起来
try{
要执行的语句; ----------->---------------------------------------------------
问题在这里,这里执行的sql语句,必须全部通过与事务关联的Cmd来执行,
若是再定义一个该链接的SqlCommand 变量,执行语句时就会出现异常?????
----------->--------------------------------------------------- 最后提交;
}
catch()
{ 回滚
}
我想要是事务格式是:
事务开始;
try{
中间是操作数据库的多条语句;----> 就是这里事务把所有合法的操作都包含起来,
但不与特定的SqlCommand 关联
事务正常提交;
}
catch(){
事务回滚
}我该怎么实现????为了更好的说明问题,给一个示例:
SqlTransaction myTran;
myTran = centerConnection.BeginTransaction();
SqlCommand deleteCarTesterCmd = centerConnection.CreateCommand();
deleteCarTesterCmd.Transaction = myTran;
SqlCommand carCmd = centerConnection.CreateCommand();
try {
deleteCarTesterCmd.CommandText = "delete from test";
deleteCarTesterCmd.ExecuteNonQuery(); carCmd.CommandText = "delete from test"; ---如果有这两句,就会出现异常??
carCmd.ExecuteNonQuery(); ---我知道这里可以用deleteCarTesterCmd代替carCmd,
---但这里就是为了说明问题,为什么会有异常呢??
myTran.Commit();
MessageBox.Show("ok");
}
catch (Exception ex)
{
myTran.Rollback();
MessageBox.Show("回滚");
}
高手指点啊。。
deleteCarTesterCmd.ExecuteNonQuery();
carCmd.Transaction = myTran;
carCmd.CommandText = "delete from test"; ---如果有这两句,就会出现异常??
carCmd.ExecuteNonQuery(); ---我知道这里原因是你的SqlConnection已经开始了一个事务,在事务结束前,该连接无法执行事务之外的命令。
之后加上
carCmd.Transaction=myTran;