Пример #1
0
        public void ModificarTelefonos(EntidadesCompartidas.Cliente unCliente)
        {
            SqlConnection _cnn = new SqlConnection(Conexion.MiConexion);

            SqlTransaction _miTransaccion = null;

            try
            {
                //Abrimos la conexion
                _cnn.Open();

                //determino que voy a trabajar en una unica transaccion
                _miTransaccion = _cnn.BeginTransaction();

                //elimino todos los telefonos
                PersitenciaTelefono.EliminarTelsCliente(unCliente, _miTransaccion);

                //genero alta para los telefonos nuevos
                foreach (EntidadesCompartidas.Telefono unTel in unCliente.LosTelefonos)
                {
                    PersitenciaTelefono.Alta(unTel, unCliente.CodCLi, _miTransaccion);
                }
                _miTransaccion.Commit();
            }
            catch (Exception ex)
            {
                _miTransaccion.Rollback();
                throw ex;
            }
            finally
            {
                _cnn.Close();
            }
        }
Пример #2
0
        public void Modificar(Cliente unCliente)
        {
            SqlConnection _cnn = new SqlConnection(Conexion.Cnn);

            SqlCommand _comando = new SqlCommand("ClienteModificar", _cnn);

            _comando.CommandType = System.Data.CommandType.StoredProcedure;
            _comando.Parameters.AddWithValue("@NumCli", unCliente.NumCli);
            _comando.Parameters.AddWithValue("@NomCli", unCliente.NomCli);
            _comando.Parameters.AddWithValue("@DirCli", unCliente.DirCli);
            _comando.Parameters.AddWithValue("@UsuCli", unCliente.UsuCli);
            _comando.Parameters.AddWithValue("@PassCli", unCliente.PassCli);

            SqlParameter _retorno = new SqlParameter("@Retorno", System.Data.SqlDbType.Int);

            _retorno.Direction = System.Data.ParameterDirection.ReturnValue;
            _comando.Parameters.Add(_retorno);

            SqlTransaction _miTransaccion = null;

            try
            {
                // conecto a la bd
                _cnn.Open();

                //determino que voy a trabajar en una unica transaccion
                _miTransaccion = _cnn.BeginTransaction();

                //elimino todos los telefonos anteriores
                PersitenciaTelefono.EliminarTelsCliente(unCliente, _miTransaccion);

                //mando a modificar al cliente
                _comando.Transaction = _miTransaccion;
                _comando.ExecuteNonQuery();
                if ((int)_retorno.Value == -1)
                {
                    throw new Exception("El cliente no existe");
                }
                else if ((int)_retorno.Value == -2)
                {
                    throw new Exception("Error en Modificacion del cliente");
                }

                //si llego aca es pq pude modificar al cliente

                //genero alta para sus telefonos
                foreach (EntidadesCompartidas.Telefono unTel in unCliente.ListaTelefonos)
                {
                    PersitenciaTelefono.Alta(unTel, unCliente.NumCli, _miTransaccion);
                }

                //si llegue aca es pq no hubo problemas con los telefonos
                _miTransaccion.Commit();
            }
            catch (Exception ex)
            {
                _miTransaccion.Rollback();
                throw ex;
            }
            finally
            {
                _cnn.Close();
            }
        }