System.NullReferenceException ...raro

23/07/2004 - 01:12 por sergio | Informe spam
Hola a todos!!

Les cuento mi historia brevemente...

He estado desarrollando mi proyecto Web en VB.NET con una
Base de datos en SQL en una PC que me dieron
temporalmentetodo iba bien, hasta que llego la PC en
la cual se iba a quedar el sitio finalmente. Configure la
nueva PC a mi parecer completamente igual a la PC que tuve
temporalmente:
- W2K SP4
- SQL Server 2000
- Visual Studio .NET (v.7) con .NET Framework v1.0.3705
- Windows update actualizado completamente
- .NET Framework actualizado v.1.1.4322

y resulta que despues de configurar la solucion ya en la
nueva PC y ejecutarla, me marca el siguiente error:
Detalles de la excepción: System.NullReferenceException:
Referencia a objeto no establecida como instancia de un
objeto.

El motivo principal de publicar mi duda en el grupo es que
en el equipo en el que trabaje temporalmente NO ME MARCA
ESTE ERROR...y por lo tanto pienso que el problema se este
generando por algun otro motivo.

No quiero pegar todo el codigo que tengo, pero mas o menos
hago esto (visto de una manera muy sencilla):

'La idea aqui es ir formando una sentencia SQL
Dim vSQL As String
Dim v1erSet As String
Select Case pQry.parteSelect
Case Constantes.RepXProd
vSQL = "Select " & _
"campo1, campo2, campo3, etc.."
Case Constantes.RepXEntrega
vSQL = "Select " & _
"campo1, campo2, campo3, etc.."
Case Constantes.RepXCosto
vSQL = "Select " & _
"campo1, campo2, campo3, etc.."
End Select

Select Case pQry.parteWhere
Case Constantes.RepXProd
vSQL += "Where campo1 = 1 and campo2 = 3"
v1erSet = "Cadena1"
Case Constantes.RepXEntrega
vSQL += "Where campo1 = 2 and campo3 = 1" ' (2)
v1erSet = "Cadena2"
Case Constantes.RepXCosto
vSQL += "Where campo2 = 1 and campo3 = 2" ' (1)
v1erSet = "Cadena2"
End Select

(1) En esta linea me marca el error que les digo
(2) Lo mas raro todavia es que cuando el codigo entra por
esta otra opcion no lo marca.

Creo que posiblemente sea lo largo de la cadena en el
punto (1), pero por que en la otra PC si me corre la
solucion?

Espero puedan apoyarme con sus comentarios.

De antemano muchas gracias.

Preguntas similare

Leer las respuestas

#1 dohko
23/07/2004 - 01:47 | Informe spam
porque no usas la clase stringbuilder para concatenar


"sergio" wrote in message
news:25ad01c47041$60ff3660$
Hola a todos!!

Les cuento mi historia brevemente...

He estado desarrollando mi proyecto Web en VB.NET con una
Base de datos en SQL en una PC que me dieron
temporalmentetodo iba bien, hasta que llego la PC en
la cual se iba a quedar el sitio finalmente. Configure la
nueva PC a mi parecer completamente igual a la PC que tuve
temporalmente:
- W2K SP4
- SQL Server 2000
- Visual Studio .NET (v.7) con .NET Framework v1.0.3705
- Windows update actualizado completamente
- .NET Framework actualizado v.1.1.4322

y resulta que despues de configurar la solucion ya en la
nueva PC y ejecutarla, me marca el siguiente error:
Detalles de la excepción: System.NullReferenceException:
Referencia a objeto no establecida como instancia de un
objeto.

El motivo principal de publicar mi duda en el grupo es que
en el equipo en el que trabaje temporalmente NO ME MARCA
ESTE ERROR...y por lo tanto pienso que el problema se este
generando por algun otro motivo.

No quiero pegar todo el codigo que tengo, pero mas o menos
hago esto (visto de una manera muy sencilla):

'La idea aqui es ir formando una sentencia SQL
Dim vSQL As String
Dim v1erSet As String
Select Case pQry.parteSelect
Case Constantes.RepXProd
vSQL = "Select " & _
"campo1, campo2, campo3, etc.."
Case Constantes.RepXEntrega
vSQL = "Select " & _
"campo1, campo2, campo3, etc.."
Case Constantes.RepXCosto
vSQL = "Select " & _
"campo1, campo2, campo3, etc.."
End Select

Select Case pQry.parteWhere
Case Constantes.RepXProd
vSQL += "Where campo1 = 1 and campo2 = 3"
v1erSet = "Cadena1"
Case Constantes.RepXEntrega
vSQL += "Where campo1 = 2 and campo3 = 1" ' (2)
v1erSet = "Cadena2"
Case Constantes.RepXCosto
vSQL += "Where campo2 = 1 and campo3 = 2" ' (1)
v1erSet = "Cadena2"
End Select

(1) En esta linea me marca el error que les digo
(2) Lo mas raro todavia es que cuando el codigo entra por
esta otra opcion no lo marca.

Creo que posiblemente sea lo largo de la cadena en el
punto (1), pero por que en la otra PC si me corre la
solucion?

Espero puedan apoyarme con sus comentarios.

De antemano muchas gracias.
Respuesta Responder a este mensaje
#2 Lázaro
23/07/2004 - 01:49 | Informe spam
Lo único que puede ser, pero me imagino que ya lo habrás revisado, es que haces variable += ; para que te de el error de null reference, solo puede ser porque la variable no tiene aún valor, pero no te se decir si por defecto no se puede usar el += si la variable no está instanciada.

Siento no ser de mucha ayuda.

Salu2

"sergio" wrote:

Hola a todos!!

Les cuento mi historia brevemente...

He estado desarrollando mi proyecto Web en VB.NET con una
Base de datos en SQL en una PC que me dieron
temporalmentetodo iba bien, hasta que llego la PC en
la cual se iba a quedar el sitio finalmente. Configure la
nueva PC a mi parecer completamente igual a la PC que tuve
temporalmente:
- W2K SP4
- SQL Server 2000
- Visual Studio .NET (v.7) con .NET Framework v1.0.3705
- Windows update actualizado completamente
- .NET Framework actualizado v.1.1.4322

y resulta que despues de configurar la solucion ya en la
nueva PC y ejecutarla, me marca el siguiente error:
Detalles de la excepción: System.NullReferenceException:
Referencia a objeto no establecida como instancia de un
objeto.

El motivo principal de publicar mi duda en el grupo es que
en el equipo en el que trabaje temporalmente NO ME MARCA
ESTE ERROR...y por lo tanto pienso que el problema se este
generando por algun otro motivo.

No quiero pegar todo el codigo que tengo, pero mas o menos
hago esto (visto de una manera muy sencilla):

'La idea aqui es ir formando una sentencia SQL
Dim vSQL As String
Dim v1erSet As String
Select Case pQry.parteSelect
Case Constantes.RepXProd
vSQL = "Select " & _
"campo1, campo2, campo3, etc.."
Case Constantes.RepXEntrega
vSQL = "Select " & _
"campo1, campo2, campo3, etc.."
Case Constantes.RepXCosto
vSQL = "Select " & _
"campo1, campo2, campo3, etc.."
End Select

Select Case pQry.parteWhere
Case Constantes.RepXProd
vSQL += "Where campo1 = 1 and campo2 = 3"
v1erSet = "Cadena1"
Case Constantes.RepXEntrega
vSQL += "Where campo1 = 2 and campo3 = 1" ' (2)
v1erSet = "Cadena2"
Case Constantes.RepXCosto
vSQL += "Where campo2 = 1 and campo3 = 2" ' (1)
v1erSet = "Cadena2"
End Select

(1) En esta linea me marca el error que les digo
(2) Lo mas raro todavia es que cuando el codigo entra por
esta otra opcion no lo marca.

Creo que posiblemente sea lo largo de la cadena en el
punto (1), pero por que en la otra PC si me corre la
solucion?

Espero puedan apoyarme con sus comentarios.

De antemano muchas gracias.



Respuesta Responder a este mensaje
#3 sergio
23/07/2004 - 18:19 | Informe spam
me hace exactamente lo mismo... que podra ser?...

me esta volviendo loco esto

slds y gracias por la ayuda

porque no usas la clase stringbuilder para concatenar


"sergio" wrote in


message
news:25ad01c47041$60ff3660$
Hola a todos!!

Les cuento mi historia brevemente...

He estado desarrollando mi proyecto Web en VB.NET con una
Base de datos en SQL en una PC que me dieron
temporalmentetodo iba bien, hasta que llego la PC en
la cual se iba a quedar el sitio finalmente. Configure la
nueva PC a mi parecer completamente igual a la PC que tuve
temporalmente:
- W2K SP4
- SQL Server 2000
- Visual Studio .NET (v.7) con .NET Framework v1.0.3705
- Windows update actualizado completamente
- .NET Framework actualizado v.1.1.4322

y resulta que despues de configurar la solucion ya en la
nueva PC y ejecutarla, me marca el siguiente error:
Detalles de la excepción: System.NullReferenceException:
Referencia a objeto no establecida como instancia de un
objeto.

El motivo principal de publicar mi duda en el grupo es que
en el equipo en el que trabaje temporalmente NO ME MARCA
ESTE ERROR...y por lo tanto pienso que el problema se este
generando por algun otro motivo.

No quiero pegar todo el codigo que tengo, pero mas o menos
hago esto (visto de una manera muy sencilla):

'La idea aqui es ir formando una sentencia SQL
Dim vSQL As String
Dim v1erSet As String
Select Case pQry.parteSelect
Case Constantes.RepXProd
vSQL = "Select " & _
"campo1, campo2, campo3, etc.."
Case Constantes.RepXEntrega
vSQL = "Select " & _
"campo1, campo2, campo3, etc.."
Case Constantes.RepXCosto
vSQL = "Select " & _
"campo1, campo2, campo3, etc.."
End Select

Select Case pQry.parteWhere
Case Constantes.RepXProd
vSQL += "Where campo1 = 1 and campo2 = 3"
v1erSet = "Cadena1"
Case Constantes.RepXEntrega
vSQL += "Where campo1 = 2 and campo3 = 1" ' (2)
v1erSet = "Cadena2"
Case Constantes.RepXCosto
vSQL += "Where campo2 = 1 and campo3 = 2" ' (1)
v1erSet = "Cadena2"
End Select

(1) En esta linea me marca el error que les digo
(2) Lo mas raro todavia es que cuando el codigo entra por
esta otra opcion no lo marca.

Creo que posiblemente sea lo largo de la cadena en el
punto (1), pero por que en la otra PC si me corre la
solucion?

Espero puedan apoyarme con sus comentarios.

De antemano muchas gracias.



.

Respuesta Responder a este mensaje
#4 Tristan
23/07/2004 - 20:09 | Informe spam
Sergio, a veces el depurador no muestra bien la linea que ha producido el
error. Y creo que mucho más con proyectos web, que son mucho más complejos
de depurar. Realmente en la linea (1) es imposible que se de una referencia
nula. Es posible que el error se produzca en la sentencia anterior. ¿Has
mirado que devuelve Constantes.RepXCosto?. Prueba con otras formas de
depuración, como las trazas.

Ahh, y en efecto, en cualquier caso usa StringBuilder para concatenar
strings. Es mucho más eficiente.

Juan Carlos Badiola
MVP - C#
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida