C#进行SQL server数据库操作时,事务中能不能改变查询语句和参数等,会不会使事务失效?

像是这样:

public static bool DeletePlanByPlanUid(List planUidList)
{
    SqlConnection conn = new SqlConnection(DataBase.connectString);
    conn.Open();
    SqlTransaction transaction = conn.BeginTransaction();
    SqlCommand cmd = conn.CreateCommand();
    cmd.Transaction = transaction;
    try
    {
        foreach (string planUid in planUidList)
        {//liuhong
            string sqlStr = SqlStr.setPlanDeleted;
            cmd.CommandText = sqlStr;
            cmd.Parameters.AddWithValue("@PlanUid", planUid);
            cmd.ExecuteNonQuery();
            cmd.Parameters.Clear();
        }
        
        transaction.Commit();
        return true;
    }
    catch (Exception ex)
    {
        transaction.Rollback();
        return false;
    }
    finally
    {
        conn.Close();
    }
}
阅读 4.5k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题