public string Anular(DPerfil Perfil)
        {
            string        respuesta   = "";
            SqlConnection SqlConectar = new SqlConnection();

            try
            {
                //conexion con la Base de Datos
                SqlConectar.ConnectionString = Conexion.CadenaConexion;
                SqlConectar.Open();

                //comandos
                SqlCommand SqlComando = new SqlCommand();
                SqlComando.Connection  = SqlConectar;
                SqlComando.CommandText = "anular_perfil";
                SqlComando.CommandType = CommandType.StoredProcedure;

                //parametros

                //parametro id
                SqlParameter Parametro_Id = new SqlParameter();
                Parametro_Id.ParameterName = "@ID";
                Parametro_Id.SqlDbType     = SqlDbType.Int;
                Parametro_Id.Value         = Perfil.ID;
                SqlComando.Parameters.Add(Parametro_Id);

                //ejecuta y lo envia en comentario
                respuesta = SqlComando.ExecuteNonQuery() == 1 ? "OK" : "No se anulo el Registro del perfil";
            }
            catch (Exception excepcion)
            {
                respuesta = excepcion.Message;
            }

            //se cierra la conexion de la Base de Datos
            finally
            {
                if (SqlConectar.State == ConnectionState.Open)
                {
                    SqlConectar.Close();
                }
            }
            return(respuesta);
        }
        //parametros
        //insertar
        public string Insertar(DPerfil Perfil, List <DDetalle_Perfil> Detalle)
        {
            string        respuesta   = "";
            SqlConnection SqlConectar = new SqlConnection();

            try
            {
                //conexion con la Base de Datos
                SqlConectar.ConnectionString = Conexion.CadenaConexion;
                SqlConectar.Open();

                //transaccion
                SqlTransaction SqlTransaccion = SqlConectar.BeginTransaction();

                //comandos
                SqlCommand SqlComando = new SqlCommand();
                SqlComando.Connection  = SqlConectar;
                SqlComando.Transaction = SqlTransaccion;
                SqlComando.CommandText = "insertar_perfil";
                SqlComando.CommandType = CommandType.StoredProcedure;

                //parametros

                //parametro id
                SqlParameter Parametro_Id_Perfil = new SqlParameter();
                Parametro_Id_Perfil.ParameterName = "@ID";
                Parametro_Id_Perfil.SqlDbType     = SqlDbType.Int;
                Parametro_Id_Perfil.Direction     = ParameterDirection.Output;
                SqlComando.Parameters.Add(Parametro_Id_Perfil);

                //parametro nombre
                SqlParameter Parametro_Nombre = new SqlParameter();
                Parametro_Nombre.ParameterName = "@Nombre";
                Parametro_Nombre.SqlDbType     = SqlDbType.VarChar;
                Parametro_Nombre.Size          = 50;
                Parametro_Nombre.Value         = Perfil.Nombre;
                SqlComando.Parameters.Add(Parametro_Nombre);

                //parametro precio 1
                SqlParameter Parametro_Precio1 = new SqlParameter();
                Parametro_Precio1.ParameterName = "@precio1";
                Parametro_Precio1.SqlDbType     = SqlDbType.Float;
                Parametro_Precio1.Value         = Perfil.Precio1;
                SqlComando.Parameters.Add(Parametro_Precio1);

                //parametro precio 2
                SqlParameter Parametro_Precio2 = new SqlParameter();
                Parametro_Precio2.ParameterName = "@precio2";
                Parametro_Precio2.SqlDbType     = SqlDbType.Float;
                Parametro_Precio2.Value         = Perfil.Precio2;
                SqlComando.Parameters.Add(Parametro_Precio2);

                //parametro titulo
                SqlParameter Parametro_Titulo = new SqlParameter();
                Parametro_Titulo.ParameterName = "@titulo";
                Parametro_Titulo.SqlDbType     = SqlDbType.Bit;
                Parametro_Titulo.Value         = Perfil.Titulo;
                SqlComando.Parameters.Add(Parametro_Titulo);

                //parametro labref
                SqlParameter Parametro_LabRef = new SqlParameter();
                Parametro_LabRef.ParameterName = "@labref";
                Parametro_LabRef.SqlDbType     = SqlDbType.Int;
                Parametro_LabRef.Value         = Perfil.LabRef;
                SqlComando.Parameters.Add(Parametro_LabRef);

                //parametro precioref
                SqlParameter Parametro_PrecioRef = new SqlParameter();
                Parametro_PrecioRef.ParameterName = "@precioRef";
                Parametro_PrecioRef.SqlDbType     = SqlDbType.Int;
                Parametro_PrecioRef.Value         = Perfil.PrecioRef;
                SqlComando.Parameters.Add(Parametro_PrecioRef);

                //ejecuta y lo envia en comentario
                respuesta = SqlComando.ExecuteNonQuery() == 1 ? "OK" : "No se ingreso el Registro del Perfil";

                if (respuesta.Equals("OK"))
                {
                    this.ID = Convert.ToInt32(SqlComando.Parameters["@ID"].Value);

                    foreach (DDetalle_Perfil det in Detalle)
                    {
                        det.IDPerfil = this.ID;

                        //llamar al insertar
                        respuesta = det.Insertar(det, ref SqlConectar, ref SqlTransaccion);

                        if (!respuesta.Equals("OK"))
                        {
                            break;
                        }
                    }
                }

                if (respuesta.Equals("OK"))
                {
                    SqlTransaccion.Commit();
                }
                else
                {
                    //si recibe una respuesta contraria se niega la transaccion
                    SqlTransaccion.Rollback();
                }
            }
            catch (Exception excepcion)
            {
                respuesta = excepcion.Message;
            }

            //se cierra la conexion de la Base de Datos
            finally
            {
                if (SqlConectar.State == ConnectionState.Open)
                {
                    SqlConectar.Close();
                }
            }
            return(respuesta);
        }