异常报错 帮吗分析一下原因 是否using

waslee 2008-05-05 04:47:50
SqlCommand Command = null;
SqlTransaction Transaction = null;
try
{
using (SqlConnection conn = new SqlConnection(ConnectionString))
{
Command = new SqlCommand();
Command.Connection = conn;
Command.CommandType = CommandType.Text;
Command.CommandText = sqlString;
conn.Open();
Transaction = conn.BeginTransaction();
Command.Transaction = Transaction;
Command.ExecuteNonQuery();
Transaction.Commit();
Command.Parameters.Clear();
}
}
catch (Exception ex)
{
Transaction.Rollback();
throw new Exception(string.Format("执行{0}语句时出现异常。", sqlString), ex);
}


如果执行上面的语句出现异常的话 Transaction.Rollback(); 按说应该回滚事物 但是到这里会出错。请问为什么?
难道是using (SqlConnection conn = new SqlConnection(ConnectionString))这句话的问题?
...全文
83 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
常熟老九 2008-05-05
  • 打赏
  • 举报
回复
对了,事务是以connection 为基础的,当你new SqlConnection时又新开一个tranSaction ,所以不回滚.这样写就行了
using (SqlConnection connection = new SqlConnection(ConnectionString))
{
connection.Open();

using (SqlTransaction transaction = connection.BeginTransaction())
{
try
{
}
}
}

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧