コード例 #1
0
        //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();
                }
            }
        }
コード例 #2
0
        //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();
                }
            }
        }