求解 C# 如何避免多个独立”事务“的有关问题

求解 C# 如何处理多个独立”事务“的问题
写了一个DBHelper类,里面有个执行增删改的功用方法,并且都加了事务

//执行增删改
        public static int ExecCommand(string sql, SqlParameter[] paras)
        {
            //高效using语句
            using (SqlConnection con = new SqlConnection(ConnString))
            {
                SqlCommand cmd = new SqlCommand();
                //追加参数
                AppendParams(con, cmd, paras, sql);
                //这里加事务
                SqlTransaction transaction = cmd.Transaction = con.BeginTransaction();
                int count = 0;
                try
                {
                    count = cmd.ExecuteNonQuery();
                    transaction.Commit();
                }
                catch (Exception)
                {
                    count = 0;
                    transaction.Rollback();
                }
                return count;
            }
        }


假如下面有2个方法

/// <summary>
        /// 更新账号
        /// </summary>
        public int UpdateAccount(Guid userID, string account)
        {
            string sql = "UPDATE Users SET Account=@Account WHERE ID=@ID";
            SqlParameter[] parameters = new SqlParameter[]{
new SqlParameter("@Account", SqlDbType.NVarChar){ Value = account },
                new SqlParameter("@ID", SqlDbType.UniqueIdentifier){ Value = userID }
};
            return Solution.HPK.CoreArea.Utility.DataBase.DBHelper.ExecCommand(sql, parameters);
        }
        /// <summary>
        /// 更新状态
        /// </summary>
        public int UpdateStatus(Guid userID, int status)
        {
            string sql = "UPDATE Users SET Status=@Status WHERE ID=@ID";
            SqlParameter[] parameters = new SqlParameter[]{
new SqlParameter("@Status", SqlDbType.Int){ Value = status },
                new SqlParameter("@ID", SqlDbType.UniqueIdentifier){ Value = userID }
};
            return Solution.HPK.CoreArea.Utility.DataBase.DBHelper.ExecCommand(sql, parameters);
        }


如果我要同时执行UpdateAccount 和UpdateStatus这个方法,其中有一个失败另一个还是正常执行
怎么处理这个问题,,除了直接把这2个方法拼成一条sql,怎么去处理这个问题
------解决思路----------------------
用TransactionScope
------解决思路----------------------
SqlTransaction transaction =  con.BeginTransaction();


              //追加参数,把transaction 也作为参数,然后在方法里面cmd.Transaction=transaction;
                AppendParams(con, cmd, paras, sql);