elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Referencia a objeto no definida como instancia de un objeto - [C#]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Referencia a objeto no definida como instancia de un objeto - [C#]  (Leído 3,230 veces)
ikkaku

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Referencia a objeto no definida como instancia de un objeto - [C#]
« en: 9 Febrero 2015, 10:24 am »

Hola a todos.
Como ya puse en otro tema estoy intentando añadir elementos a una base de datos desde un ListBox en VS pero el problema que tengo ahora es que cada vez que intento crearlo me salta este error.
Código
  1. private void Page_Loaded(object sender, RoutedEventArgs e)
  2.        {
  3.            database = new surplastikEntities();
  4.            elementList.ItemsSource = database.element.ToList();
  5.  
  6.            mainWindow = (MainWindow) Window.GetWindow(this);
  7.            mainWindow.SetVisibilidadBoton("botonVolver", Visibility.Visible);
  8.            mainWindow.SetTitle("Productos");
  9.        }


Este es el codigo de la carga de la pagina.

Código
  1. private void ButtonNewProductClick(object sender, System.Windows.RoutedEventArgs e)
  2.        {
  3.            element selected = (element) elementList.SelectedItem;
  4.            element newElement = new element();
  5.  
  6.            newElement.reference_code = "Nueva elemento";
  7.            if (selected != null)
  8.            {
  9.                newElement.large_x = selected.large_x;
  10.                newElement.bulk_code = selected.bulk_code;
  11.                newElement.width_y = selected.width_y;
  12.                newElement.hight_z = selected.hight_z;
  13.  
  14.                newElement.reference_code = selected.reference_code;
  15.            }
  16.            else
  17.            {
  18.                newElement.large_x = 0;
  19.                newElement.bulk_code = "0";
  20.                newElement.width_y = 0;
  21.                newElement.hight_z = 0;
  22.  
  23.                newElement.reference_code = "0";
  24.            }
  25.            database.element.Add(newElement); //<------ERROR AQUI
  26.  
  27.            database.SaveChanges();
  28.            database = new Entities();
  29.            elementList.ItemsSource = database.element.ToList();
  30.  
  31.  
  32.        }

Esa es la accion de mi boton nuevo elemento y la linea donde me da el error. He intentado ponerlo antes de darle los valores y despues de darselos pero el resultado es el mismo.

Agradezco su atencion.

Un saludo

Edit: He probado a meter una linea asi
Código
  1. if (newElement == null)
  2.                MessageBox.Show("NUEVO ELEMENTO NULO");
para ver si el elemento que acabo de crear es nulo y nunca me salta asi que doy por hecho que tiene que ser algo relacionado con la base de datos o su instanciacion.


« Última modificación: 9 Febrero 2015, 10:38 am por ikkaku » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.810



Ver Perfil
Re: Referencia a objeto no definida como instancia de un objeto - [C#]
« Respuesta #1 en: 11 Febrero 2015, 14:39 pm »

Código
  1.        {
  2.        ...
  3.            element newElement = new element();
  4.        ...
  5.            database.element.Add(newElement); //<------ERROR AQUI
  6.        }

Edit: He probado a meter una linea asi
Código
  1. if (newElement == null)
  2.                MessageBox.Show("NUEVO ELEMENTO NULO");
para ver si el elemento que acabo de crear es nulo y nunca me salta asi que doy por hecho que tiene que ser algo relacionado con la base de datos o su instanciacion.

El 'MessageBox' nunca se muestra porque es imposible que el objeto 'newElement' sea nulo, ya que siempre estás inicializando el objeto al principio del bloque con el constructor.

Lo que tienes que hacer es inicializar la colección 'database.element' antes de intentar agregar un item a dicha colección, ya que al ser nula, te salta una excepción de referencia a objeto nulo, el error te está indicando que estás intentando utilizar un objeto que no ha sido inicializado, por ende, si no es el objeto  'newElement ', es la lista 'database.element' o también podría ser el objeto 'database', realiza la misma prueba del 'MessageBox' con ambos objetos.

Saludos!


« Última modificación: 11 Febrero 2015, 14:44 pm por Eleкtro » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines