ASP.NET - Referencia a objeto no establecida como instancia

   
Vista:

Referencia a objeto no establecida como instancia

Publicado por Jorge (5 intervenciones) el 29/03/2009 12:32:56
Tengo un error en VStudio 2008.

Error:

Detalles de la excepción: System.NullReferenceException: Referencia a objeto no establecida como instancia de un objeto.

Error de código fuente:

Línea 28: protected void Page_Load(object sender, EventArgs e)
Línea 29: {
Línea 30: sqlDataAdapter1.Fill(dataSet11); // Aquí da error.
Línea 31:
Línea 32: DataGrid1.DataSource = dataSet11;

Archivo de origen: D:Mis documentosPRACTICASAplicaciones Web ASP.NETDEMOCODEMod09PracticeCSWebForm1.aspx.cs Línea: 30
-------------------------------------------------------------------------------------------------------------------

En modo de diseño creo conexión, dataset, dataadapter y datagrid.

El código generado por VStudio 2008 es el siguiente:

private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(WebForm1));
this.conn = new System.Data.SqlClient.SqlConnection();
this.sqlSelectCommand1 = new System.Data.SqlClient.SqlCommand();
this.sqlInsertCommand1 = new System.Data.SqlClient.SqlCommand();
this.sqlUpdateCommand1 = new System.Data.SqlClient.SqlCommand();
this.sqlDeleteCommand1 = new System.Data.SqlClient.SqlCommand();
this.sqlDataAdapter1 = new System.Data.SqlClient.SqlDataAdapter();
this.dataSet11 = new Mod09PracticeCS.DataSet1();
((System.ComponentModel.ISupportInitialize)(this.dataSet11)).BeginInit();

------------------------------------------------------------------------------------------------------------------

¿POR QUÉ INDICA ERROR DE REFERENCIA NO ESTABLECIDA COMO INSTANCIA DE UN OBJETO, SI VStudio 2008 INICIALIZA Y CREA TODOS LOS OBJETOS EN EL MÉTODO InitializeComponent() ?

¿Alguien puede indicarme algo al respecto?

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Referencia a objeto no establecida como instanc

Publicado por m (121 intervenciones) el 30/03/2009 22:46:50
Bueno pues ese error se puede deber a dos cosas,
primero no estas referenciando de la manera correcta:

DataSet dataSet = new DataSet();

La otra es que cuando estas llenando el objeto debes especificar cual tabla
estas llenando:

dataAdapter.Fill(dataSet, "TablaX");

Segun veo parece ser que te esta ocurriendo esto ultimo.

saludos
.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Referencia a objeto no establecida como instanc

Publicado por jorge (5 intervenciones) el 31/03/2009 00:37:45
Muchas gracias por responder.

el código completo es:

protected void Page_Load(object sender, EventArgs e)
{
conn.Open();
sqlDataAdapter1.Fill(dataSet11);

DataGrid1.DataSource = dataSet11;
DataGrid1.DataMember = "authors";
DataGrid1.DataBind();
}

He indicado la tabla (dataSet11, "authors") como me indicas pero me vuelve a dar el mismo error con la linea anterior, 'conn.Open();'

Debe ser el otro aspecto que mencionabas de instanciarlo correctamente, ¿es que no es correcto el código que genera VStudio 2008?
---------------------------------------------------------------
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(WebForm1));

this.sqlDataAdapter1 = new System.Data.SqlClient.SqlDataAdapter();
this.conn = new System.Data.SqlClient.SqlConnection();
this.dataSet11 = new Mod09PracticeCS.DataSet1();

((System.ComponentModel.ISupportInitialize)(this.dataSet11)).BeginInit();
}
---------------------------------------------------------------

¿El código de VStudio 2008 no crea correctamente los objetos de las clases?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Referencia a objeto no establecida como instanc

Publicado por m (121 intervenciones) el 31/03/2009 01:13:29
Intenta crear tu propia conexion y ejecutar la consulta directamente:

SqlConnection cnn = new SqlConnection("Data Source=(local);Initial Catalog=BaseInicial;Integrated Security=SSPI");
SqlDataAdapter cmd1 = new SqlDataAdapter("Select * from Authors ", cnn);

DataSet ds = new DataSet();
cmd1.Fill(ds, "Authors");

DataGrid1.DataSource = dataSet11;

////....

saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Referencia a objeto no establecida como instanc

Publicado por Jorge (5 intervenciones) el 31/03/2009 10:48:23
Sí, si creo los objetos con mi código si funciona, lo que no funciona en VStudio 08 es si creas los objetos con el diseñador de componentes y luego intentas utilizar esos objetos creados con el diseñador en tu código manualmente.

Eso no pasaba en Versiones anteriores, al menos en VStudio 03. Creo que Microsoft debería dar una solución a este problema de 'código fatasma' generado por el diseñador de componentes de VStudio 08.

Si sabes alguna manera de hacerles llegar este problema indícamelo porfavor.

Gracias por responder, un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Referencia a objeto no establecida como instanc

Publicado por m (121 intervenciones) el 31/03/2009 19:26:28
accede a la siguiente pagina,
lo recomendable es buscar si ya existe ese tema:

http://social.msdn.microsoft.com/Search/es-ES/?query=disenador%20de%20controles&ac=3

y si no pues, puedes crearlo.

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Referencia a objeto no establecida como instanc

Publicado por Jorge (5 intervenciones) el 31/03/2009 22:02:09
Indagaré en el enlace que me indicas a ver si encuentro una solución para poder emplear manualmente los objetos que crea el diseñador de componentes de VStudio 08.

Gracias por tu ayuda amigo, y que Dios te la multiplique cuando la necesites ;-)

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Referencia a objeto no establecida como instanc

Publicado por Jorge (5 intervenciones) el 02/04/2009 10:48:24
Respuesta definitiva al título de este asunto:

El código generado por VStudio2008 en modo de diseño y desde el panel Menu/Ver/Diseñador de Componentes, es un código que crea los objetos dentro de un método InitializeComponent(), por lo tanto como son declarados dentro de éste método solo son útiles dentro de él y no a nivel de aplicación.

Gracias 'm' por tu ayuda, esto era lo que pasaba.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar