CLR: .Net / Mono / Boo / Otros CLR > C#

 problema con clases y list

(1/1)

kurosawazero:
hola buenas soy nuevo con c# y tengo problemas con un ejercicio con db4o

tengo una clase persona

--- Código: ---   public class Persona
    {

           
       
        public virtual string Rut
        {
            get;

            set;

        }
        public virtual int Dv
        {
            get;

            set;

        }


        public virtual string Nombre
        {
            get;

            set;
           
        }

        public virtual string ApellidoP
        {
            get;
            set;
           
        }

        public virtual string ApellidoM
        {
            get;
            set;
           
        }
        public List<Direccion> Direcciones { get; set; }



    }
--- Fin del código ---

y tengo una clase direcciones

--- Código: ---public class Direccion
    {
       
       
        public int Numero
        {
            get;
            set;
        }



        public string Calle
        {
            get;
            set;
        }
        public string Comuna
        {
            get;
            set;
        }
        public string Region
        {
            get;
            set;
        }



    }

--- Fin del código ---

y un formulario con textbox para el ingreso de datos y un boton guardar
con este codigo

--- Código: --- private void cmdAgregarPN_Click(object sender, EventArgs e)
        {

                IObjectContainer db = Db4oFactory.OpenFile(@"bd.yap");

                PersonaN P = new PersonaN();
               
             
                P.Nombre = txtNombre.Text;
                P.ApellidoP = txtApellidoP.Text;
                P.ApellidoM = txtApellidoM.Text;
                P.Rut = txtRut.Text;
                P.Dv = Convert.ToInt32(txtDv.Text);
                P.Direcciones[0].Region = txtRegion.Text;
                P.Direcciones[0].Comuna = txtComuna.Text;
                P.Direcciones[0].Calle = txtCalle.Text;
                P.Direcciones[0].Numero = Convert.ToInt32(txtNumero.Text);
               
                try
                {
                    db.Store(P);
                    db.Commit();

                }
                catch (Exception ex)
                {
                    throw;
                }
                finally
                {
                    db.Close();
                }
                MessageBox.Show("Persona Guardada");
                txtNombre.Clear();
                txtApellidoP.Clear();
                txtApellidoM.Clear();
                txtRut.Clear();
                txtDv.Clear();
                txtRegion.Clear();
                txtComuna.Clear();
                txtCalle.Clear();
                txtNumero.Clear();

            }
           
        }

--- Fin del código ---
cuando inicio la aplicacion lleno las cajas de texto y al darle al boton agregar me sale el error de la imagen
si reviso los demas parametros como nombre apellido si logran capturar el valor pero al llegar a la parte de direcciones muere

de ante mano muchas gracias por la ayuda
saludos

kurosawazero:
bueno al final encontre solucion para mi problema y trabaje asi el codigo


--- Código: ---private void cmdAgregarPN_Click(object sender, EventArgs e)
        {

                IObjectContainer db = Db4oFactory.OpenFile(@"bd.yap");

                PersonaN P = new PersonaN();
                P.Direcciones = new List<Direccion>();
             
                P.Nombre = txtNombre.Text;
                P.ApellidoP = txtApellidoP.Text;
                P.ApellidoM = txtApellidoM.Text;
                P.Rut = txtRut.Text;
                P.Dv = Convert.ToInt32(txtDv.Text);
                P.Direcciones.Add(new Direccion() {Region= txtRegion.Text,Comuna=txtComuna.Text, Calle = txtCalle.Text, Numero = Convert.ToInt32(txtNumero.Text) });
               
                try
                {
                    db.Store(P);
                    db.Commit();

                }
                catch (Exception ex)
                {
                    throw;
                }
                finally
                {
                    db.Close();
                }
                MessageBox.Show("Persona Guardada");
                txtNombre.Clear();
                txtApellidoP.Clear();
                txtApellidoM.Clear();
                txtRut.Clear();
                txtDv.Clear();
                txtRegion.Clear();
                txtComuna.Clear();
                txtCalle.Clear();
                txtNumero.Clear();

            }
           
        }

--- Fin del código ---
pero ahora tengo otra duda
si tubiese una clase mas por ejemplo "tipodireccion" y en direccion tuviese public virtual List<tipodireccion> tiposdireccion
como hago para llegar a ella a traves de la clase persona?

Navegación

[0] Índice de Mensajes

Ir a la versión completa