//Btn GUARDAR private void button1_Click(object sender, EventArgs e) { FileStream fichero = null; Piso piso = null; strId = int.Parse(idTxtId.Text); strDireccion = idTxtDireccion.Text; strSuperficie = float.Parse(idTxtSuperficie.Text); strOrientacion = idTxtOrientacion.Text; strPrecio = double.Parse(idTxtPrecio.Text); try { piso = new Piso(); piso.Id = strId; piso.Direccion = strDireccion; piso.Superficie = strSuperficie; piso.Orientacion = strOrientacion; piso.Precio = strPrecio; if (File.Exists("data.xml")) { //COMO YA EXISTE: //4. Machacamos el fichero con la nueva info //1. Abrimos el fichero fichero = new FileStream("data.xml", FileMode.Open); //Creamos formateador XML para la Deserialización del mismo XmlSerializer format = new XmlSerializer(inmobiliaria.GetType()); //2. Volcamos todos los objetos piso en una lista de pisos inmobiliaria = (Inmobiliaria)format.Deserialize(fichero); //Cerramos el fichero fichero.Close(); //3. Abrimos de nuevo el fichero fichero = new FileStream("data.xml", FileMode.Open); inmobiliaria.ListaPisos1.Add(piso); XmlSerializer format2 = new XmlSerializer(inmobiliaria.GetType()); format2.Serialize(fichero, inmobiliaria); fichero.Close(); } else { //COMO NO EXISTE: //1. Creamos el fichero fichero = new FileStream("data.xml", FileMode.Create); inmobiliaria.ListaPisos1.Add(piso); //Creamos formateador XML XmlSerializer format = new XmlSerializer(inmobiliaria.GetType()); format.Serialize(fichero, inmobiliaria); fichero.Close(); } MessageBox.Show("¡ Registro Ok !"); } catch (IOException ex) { MessageBox.Show("Error: " + ex.Message); } finally { if (fichero != null) { fichero.Close(); } } }
//Btn AÑADIR private void button2_Click(object sender, EventArgs e) { //Capturamos los strings de los campos del registro strId = int.Parse(idTxtID.Text); strDireccion = idTxtDireccion.Text; strSuperficie = float.Parse(idTxtSuperf.Text); strOrientacion = idComboBox.Text; strPrecio = double.Parse(idTxtPrecio.Text); try { //Asignamos los valores al objeto piso piso = new Piso(); piso.Id = strId; piso.Direccion = strDireccion; piso.Superficie = strSuperficie; piso.Orientacion = strOrientacion; piso.Precio = strPrecio; //Comprobamos la existencia del fichero if (!File.Exists(nombreFichero)) { //Como no existe el fichero: //Creamos el fichero fichero = new FileStream(nombreFichero, FileMode.Create); inmobiliaria.AddPiso(piso); //Añadimos el piso a la lista de pisos //Creamos el formateador XML XmlSerializer format = new XmlSerializer(inmobiliaria.GetType()); format.Serialize(fichero, inmobiliaria); //Serializamos el registro de datos fichero.Close(); } else { //Pero... si el fichero ya existe: //1. Abrimos y deserializamos todo el xml fichero = new FileStream(nombreFichero, FileMode.Open); XmlSerializer format = new XmlSerializer(inmobiliaria.GetType()); inmobiliaria = (Inmobiliaria)format.Deserialize(fichero); fichero.Close(); //2. Abrimos y serializamos el nuevo objeto de lista de pisos generado ( objeto que tiene un nuevo registro de piso ) fichero = new FileStream(nombreFichero, FileMode.Create); inmobiliaria.AddPiso(piso); XmlSerializer format2 = new XmlSerializer(inmobiliaria.GetType()); format2.Serialize(fichero, inmobiliaria); fichero.Close(); } MessageBox.Show("¡ Registro Ok !"); } catch (Exception ex) { MessageBox.Show("Error: " + ex.Message); } finally { if (fichero != null) { fichero.Close(); } } }