//Registrar una Nueva Propiedad
        public string RegistrarPropiedad(Propiedad p)
        {
            conexion.origen.Open();
            try
            {
                conexion.str_sql = "insert into Propiedad (direccion,id_barrio,fecha_inauguracion,foto,nro_habitaciones,id_estado,piso,depto,id_servicio,id_requisito,precio,descripcion,id_tipoPropiedad) values (@direccion,@id_barrio,@fecha_inauguracion,@foto,@nro_habitaciones,@id_estado,@piso,@depto,@id_servicio,@id_requisito,@precio,@descripcion,@id_tipoPropiedad)";
                conexion.cmd = new SqlCommand(conexion.str_sql, conexion.origen);
                //Parámetros
                conexion.cmd.Parameters.Add("@direccion",p.Direccion);
                conexion.cmd.Parameters.Add("@id_barrio", p.Id_barrio);
                conexion.cmd.Parameters.Add("@fecha_inauguracion", p.FechaIng);
                if (p.foto != null)
                {
                    //conexion.cmd.Parameters.Add("@foto", p.foto);
                    conexion.cmd.Parameters.Add(new SqlParameter("@foto", SqlDbType.Image) { Value = p.foto });
                }

                else
                {
                    //conexion.cmd.Parameters.Add("@foto", DBNull.Value);
                    conexion.cmd.Parameters.Add(new SqlParameter("@foto", SqlDbType.Image) { Value = DBNull.Value });
                }
                conexion.cmd.Parameters.Add("@nro_habitaciones", p.NroHabitaciones);
                conexion.cmd.Parameters.Add("@id_estado", p.Id_estado);
                if (p.Piso != 0)
                    conexion.cmd.Parameters.Add("@piso", p.Piso);
                else
                    conexion.cmd.Parameters.Add("@piso", DBNull.Value);
                if (p.Depto != 'ñ')
                    conexion.cmd.Parameters.Add("@depto", p.Depto);
                else
                    conexion.cmd.Parameters.Add("@depto", DBNull.Value);

                conexion.cmd.Parameters.Add("@id_servicio", p.Id_servicio);
                conexion.cmd.Parameters.Add("@id_requisito", p.Id_requisito);
                conexion.cmd.Parameters.Add("@precio", p.Precio);
                if(p.Descripcion !="")
                    conexion.cmd.Parameters.Add("@descripcion", p.Descripcion);
                else
                    conexion.cmd.Parameters.Add("@descripcion",DBNull.Value);
                conexion.cmd.Parameters.Add("@id_tipoPropiedad", p.Id_tipoPropiedad);

                conexion.cmd.ExecuteNonQuery();
                conexion.origen.Close();
                return "Guardado";
            }
            catch(Exception)
            {
                if (conexion.origen.State == ConnectionState.Open)
                    conexion.origen.Close();
                return "Error al Guardar";
            }
        }
        private void btnGuardar_Click(object sender, EventArgs e)
        {
            //Control para que el usuario ingrese o seleccione campos obligatorios
            if (txtDireccion.Text=="")
            {
                MessageBox.Show("Ingrese una dirección", "Advertencia", MessageBoxButtons.OK,
                    MessageBoxIcon.Warning);
                lbl3.ForeColor = Color.Red;
                txtDireccion.BackColor = Color.Yellow;
                txtDireccion.Focus();
                return;
            }
            if (txtPrecio.Text == "")
            {
                MessageBox.Show("Ingrese un precio en pesos", "Advertencia", MessageBoxButtons.OK,
                    MessageBoxIcon.Warning);
                lbl6.ForeColor = Color.Red;
                txtPrecio.BackColor = Color.Yellow;
                txtPrecio.Focus();
                return;
            }
            /*if (mtbFechaInag.MaskFull==false)
            {
                MessageBox.Show("Ingrese una fecha de inauguración correctamente", "Advertencia", MessageBoxButtons.OK,
                    MessageBoxIcon.Warning);
                lbl9.ForeColor = Color.Red;
                mtbFechaInag.BackColor = Color.Yellow;
                mtbFechaInag.Focus();
                return;
            }*/
            if (cmbTipoPropiedad.SelectedIndex == 0)
            {
                MessageBox.Show("Seleccione un tipo de Propiedad", "Advertencia", MessageBoxButtons.OK,
                    MessageBoxIcon.Warning);
                lbl1.ForeColor = Color.Red;
                cmbTipoPropiedad.Focus();
                return;
            }
            if (cmbLocalidad.SelectedIndex == 0)
            {
                MessageBox.Show("Seleccione una Localidad", "Advertencia", MessageBoxButtons.OK,
                    MessageBoxIcon.Warning);
                lbl2.ForeColor = Color.Red;
                cmbLocalidad.Focus();
                return;
            }
            if (cmbEstado.SelectedIndex == 0)
            {
                MessageBox.Show("Seleccione un estado de la Propiedad", "Advertencia", MessageBoxButtons.OK,
                    MessageBoxIcon.Warning);
                lbl7.ForeColor = Color.Red;
                cmbEstado.Focus();
                return;
            }
            if (cmbRequisitos.SelectedIndex == 0)
            {
                MessageBox.Show("Seleccione el nivel de Requisitos", "Advertencia", MessageBoxButtons.OK,
                    MessageBoxIcon.Warning);
                lbl8.ForeColor = Color.Red;
                cmbRequisitos.Focus();
                return;
            }
            if (cmbServicios.SelectedIndex == 0)
            {
                MessageBox.Show("Seleccione el nivel de Servicio", "Advertencia", MessageBoxButtons.OK,
                    MessageBoxIcon.Warning);
                lbl10.ForeColor = Color.Red;
                cmbServicios.Focus();
                return;
            }
            //Si selecciono departamento debe ingresar un nro. de piso
            if (cmbTipoPropiedad.SelectedIndex == 2 && txtPiso.Text == "")
            {
                MessageBox.Show("Ingrese un piso", "Advertencia", MessageBoxButtons.OK,
                    MessageBoxIcon.Warning);
                lbl4.ForeColor = Color.Red;
                txtPiso.BackColor = Color.Yellow;
                txtPiso.Focus();
                return;
            }
            //Si selecciono departamento debe ingresar un Depto.
            if (cmbTipoPropiedad.SelectedIndex == 2 && txtDepto.Text == "")
            {
                MessageBox.Show("Ingrese un Depto.", "Advertencia", MessageBoxButtons.OK,
                    MessageBoxIcon.Warning);
                lbl5.ForeColor = Color.Red;
                txtDepto.BackColor = Color.Yellow;
                txtDepto.Focus();
                return;
            }
            //Controlar el si la fecha ingresada está dentro del rango válido
            //bool res = FechaValida(DateTime.Parse(mtbFechaInag.Text));
            bool res = FechaValida(DateTime.Parse(dtpFechaInaug.Text));
            if (res == false)
            {
                MessageBox.Show("Ingrese una fecha de inauguración correctamente", "Advertencia", MessageBoxButtons.OK,
                    MessageBoxIcon.Warning);
                lbl9.ForeColor = Color.Red;
                dtpFechaInaug.Focus();
                //mtbFechaInag.BackColor = Color.Yellow;
                //mtbFechaInag.Focus();
                return;
            }

            //Foto pasarla a Byte en caso de ser distinta a la foto de inicio
            if (pbFoto.Image != null)
            {
                //p.foto = ImgToByte(pbFotoDeportista.Image);
                foto = ImgToByte(pbFoto.Image);
            }

            //Creo los objetos con los datos cargados por el Usuario.
            Propiedad p = new Propiedad();
            TipoPropiedad tp = new TipoPropiedad();
            //Localidad l = new Localidad();
            Barrio b = new Barrio();
            Estado es = new Estado();
            Requisito req = new Requisito();
            Servicio ss = new Servicio();
            p.Direccion = txtDireccion.Text;
            p.Descripcion = txtDescrip.Text;
            if (txtPiso.Text != "")
                p.Piso = int.Parse(txtPiso.Text);
            else
                p.Piso = 0;
            if(txtDepto.Text != "")
                p.Depto = char.Parse(txtDepto.Text);
            else
                p.Depto='ñ';
            p.FechaIng = DateTime.Parse(dtpFechaInaug.Text);
            p.NroHabitaciones = int.Parse(cmbNroHab.SelectedItem.ToString());
            tp = (TipoPropiedad)cmbTipoPropiedad.SelectedItem;
            //l = (Localidad)cmbLocalidad.SelectedItem;
            b = (Barrio)cmbBarrio.SelectedItem;
            es = (Estado)cmbEstado.SelectedItem;
            req = (Requisito)cmbRequisitos.SelectedItem;
            ss = (Servicio)cmbServicios.SelectedItem;
            p.Id_tipoPropiedad = tp.Id_tipoPropiedad;
            p.Id_barrio = b.Id_barrio;
            p.Id_estado = es.Id_estado;
            p.Id_requisito = req.Id_requisito;
            p.Id_servicio = ss.Id_servicio;
            p.Precio = double.Parse(txtPrecio.Text);
            if (contador > 0)
                p.foto = foto;
            else
                p.foto = null;
            /*if (foto != fotoXDefecto)
                p.foto = foto;
            else
                p.foto = null;*/

            //nuevos cambios
                    guardado = mp.ModificarPropiedad(id, p);
                    MessageBox.Show("La propiedad ha sido modificada", "Modificación de Propiedad", MessageBoxButtons.OK,
                    MessageBoxIcon.Information);
                    Limpiar();
                    return;
        }
        //Verificar que no exista ya la propiedad cargada.
        public string ExistePropiedad(Propiedad p)
        {
            try
            {
                conexion.origen.Open();
                conexion.ds = new DataSet();
                var direccion = p.Direccion;
                var piso = p.Piso;
                var depto = p.Depto;
                conexion.str_sql="select * from Propiedad where direccion='"+direccion+"' and piso="+piso+" and depto='"+depto+"'";
                conexion.da = new SqlDataAdapter(conexion.str_sql, conexion.origen);
                conexion.da.Fill(conexion.ds, "Propiedades");
                var test = conexion.ds.Tables[0].Rows[0][0].ToString();
                return "Existe Propiedad";
                //return "No Existe Propiedad";
            }

            catch (Exception)
            {
                if (conexion.origen.State == ConnectionState.Open)
                    conexion.origen.Close();
                return "No Existe Propiedad";
            }
        }