Visual Basic.NET - System.NullReferenceException: Object reference no

 
Vista:

System.NullReferenceException: Object reference no

Publicado por Pablo Roberto (6 intervenciones) el 08/02/2007 20:26:33
Hola amigos, x motivos fuertes en mi empresa he tenido q verificar (conocer) VB.NET y lograr corregir errores d cuando c oprime un boton para enviar informacion q dbe ser devuelta en una aplicacion web.

Y pues el codigo generado no lo he desarrollado yo =( asi q me toca entender el codigo para brindar la solucion, pero cuando lleno los datos en el GridView me saca el error

System.NullReferenceException: Object reference not set to an instance of an object.

y en ese error lo apunto al siguiente codigo:

<asp:Repeater ID="Repeater_EnlacesActuales_DG_UpgradesDatos" DataSource='<%# FuncRepeater_DG_UpgradesDatos_ForNesting(DataBinder.Eval(Container.DataItem, "IdServicioClienteAsoc").ToString, DataBinder.Eval(Container.DataItem, "IdServicioCliente").ToString, DataBinder.Eval(Container.DataItem, "IdSucursalAsoc"), DataBinder.Eval(Container.DataItem, "IdSucursal"), DataBinder.Eval(Container.DataItem, "IdServicio"),DataBinder.Eval(Container.DataItem, "IdServicioNuevo"), DataBinder.Eval(Container.DataItem, "IdCompresionNueva")) %>' runat="server">

hasta ahora c q el asp Repeater esta asociado con devolver datos de una tabla con sus campos, q en este caso son los parametro entre comillas dentro de Container.DataItem, pero no c xq m da ese error, debo aclarar q este error apunta a una pagina aspx.

cualquier ayuda la agradecere sinceramente, saludos amigos =)
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:System.NullReferenceException: Object reference

Publicado por Edgar (1501 intervenciones) el 08/02/2007 20:42:29
Hola

Ese error ocurre cuando tratas de usar un objeto que no has creado o que por alguna razon lo destruiste (asignandole Nothing)

Debes revisar cual es en el codigo de la funcion FuncRepeater_DG_UpgradesDatos_ForNesting, lo mejor es introducir un punto de ruptura o breakpoint en el inicio de la funcion e ir paso a paso (con F10) para que veas en donde esta fallando esa funcion.

Una vez que lo detectes, debes asegurarte de crear ese objeto (aunque esa no es la unica solucion, todo depende de lo que tenga el codigo)

Saludos

Edgar Gonzalez
http://www.edgaragg.com
http://sobre-ing-software.blogspot.com/
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:System.NullReferenceException: Object reference

Publicado por Pablo Roberto (6 intervenciones) el 08/02/2007 22:49:07
Gracias edgar

segui tu consejo y debuggie paso a paso con F10, el verdadero clavo me da antes d la funcion FuncRepeater_DG_UpgradesDatos_ForNesting, (ya que si no estoy mal el F10 t muestra en donde esta tu error, al debugear no encontro ningun error en FuncRepeater_DG_UpgradesDatos_ForNesting).

el verdadero error es

System.FormatException: Input string was not in a correct format.

yo tengo en otra funcion una variable global llamada Valid_IdiSalesOferta, la cual es de tipo String, y en donde me da el error verdadero exactamente es en esta linea de codigo.

If Library_Validadores.Count_Procesed_From_T_SERVICIO_CLIENTE(Valid_IdiSalesOferta) > 0 Then
Unlock_Productos_iSales.Visible = False
End If

Creo q es un error d formato, a no ser q necesite castear esa variable de tipo string, ya que si leemos el if, este condicional trata a Valid_IdSalesOferta como una variable entera,.

Library_Validadores segun puedo ver en Object Browser es como una libreria o una funcion definida en VB.NET, pero no c como hacer el casteo,.

entonces espero tu valiosa ayuda,

gracias.
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:System.NullReferenceException: Object reference

Publicado por Edgar (1501 intervenciones) el 08/02/2007 22:55:30
Hola

Ese error da, como tu bien has dicho por un error de formato, ocurre cuando quieres hacer un casting, a través del metodo Parse o con con la clase Convert y el string que le pasas no esta en el formato correcto, en el caso de enteros, cuando tiene un caracter no valido como una letra

Ya en este caso lo que tienes que revisar en primer lugar si de repente el error es por el punto decimal (lo cual es comun) porque tu esperas como separador de decimales la coma y recibes el punto. En ese caso, tienes que hacer uso de la cultura adecuada (System.Globalization.CultureInfo)

Si no es eso, pues debes poner en algun lugar la validacion de las entradas

Saludos

Edgar Gonzalez
http://www.edgaragg.com
http://sobre-ing-software.blogspot.com/
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:System.NullReferenceException: Object reference

Publicado por Pablo Roberto (6 intervenciones) el 08/02/2007 23:23:41
ok, gracias x tu ayuda, solo aclarame esto x favor, es el System.Globalization.CultureInfo una libreria? (similar a los System usados en C sharp)?, o podria incluso cambiar la definicion d mi variable string x entera?

gracias.
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:System.NullReferenceException: Object reference

Publicado por Edgar (1501 intervenciones) el 08/02/2007 23:57:14
Hola

El CultureInfo es una clase que te permite definir la cultura de una aplicacion, la cultura se refiere especificamente a la configuracion regional, es decir, te va a permitir determinar cosas como el simbolo de la moneda, formato de la fecha, numeros (separador de miles y decimales) entre otros

Para mas informacion, puedes consultar en msdn

http://msdn2.microsoft.com/en-us/library/system.globalization.cultureinfo.aspx

Ahora bien...fijate que en metodo Parse hay una de las sobrecargas que recibe un IFormatProvider, esta es una interfaz que indica como es el formato del elemento al que quieres parsear. Pues bien, el CultureInfo implementa esa interfaz, asi que lo que debes hacer es conseguir la cultura adecuada y pasarsela en ese parametro del Parse.

Tambien podrias cambiar la cultura de la aplicacion completa asignandosela a la propiedad Application.CurrentCulture

Saludos

Edgar Gonzalez
http://sobre-ing-software.blogspot.com/
http://www.edgaragg.com
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