Problema con DataRow

11/03/2006 - 23:34 por Juan de la Torre | Informe spam
hola sabios amigos, necesito de vuestra ayuda, tengo el siguiente codigo:

Private Sub cboProvincia_SelectedIndexChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles cboProvincia.SelectedIndexChanged

Dim SelectedCustomerID As String = New String(Me.cboProvincia.SelectedValue)

Dim drSelectedCustomer As DataRow =
Me.ProvinciaPoblacionDS.Provincias.FindByProvinciaID(SelectedCustomerID)

Dim draOrders As DataRow()
draOrders = drSelectedCustomer.GetChildRows("CustomersOrders")

al ejecutarlo me sale un error en la ultima linea, el siguiente error:

Referencia a objeto no establecida como instancia de un objeto.

(el error sale al cerrar el formulario)
donde esta el error? pues esta copiado de un ejemplo y esta copiado tal cual.

gracias por vuestra ayuda

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
12/03/2006 - 08:51 | Informe spam
"Juan de la Torre" wrote in
message news:
hola sabios amigos, necesito de vuestra ayuda, tengo el siguiente codigo:

Private Sub cboProvincia_SelectedIndexChanged(ByVal sender As
System.Object,
ByVal e As System.EventArgs) Handles cboProvincia.SelectedIndexChanged

Dim SelectedCustomerID As String = New
String(Me.cboProvincia.SelectedValue)

Dim drSelectedCustomer As DataRow > Me.ProvinciaPoblacionDS.Provincias.FindByProvinciaID(SelectedCustomerID)

Dim draOrders As DataRow()
draOrders = drSelectedCustomer.GetChildRows("CustomersOrders")

al ejecutarlo me sale un error en la ultima linea, el siguiente error:

Referencia a objeto no establecida como instancia de un objeto.

(el error sale al cerrar el formulario)
donde esta el error? pues esta copiado de un ejemplo y esta copiado tal
cual.



Te sale "referencia a objeto no establecida" en una linea cuya única
referencia a objeto es el drSelectedCustomer. Por lo tanto se deduce que a
esa linea está llegando Nothing dentro de drSelectedCustomer. Como esa
variable la establece en la linea anterior la función FindByProvinciaID,
tendrás que revisar el código que tienes escrito dentro de dicha función
para ver por qué te devuelve Nothing.
Por la forma en que está escrita la sentencia, parece que
FindByProvinciaID pertenece a un TableAdapter, y me imagino que lo habrás
creado desde el diseñador gráfico y no desde código. En ese caso, revisa la
sentencia SQL que le has metido, y los parámetros que recibe, porque parece
que no los está interpretando como lo deseas en tu código.
Si el error solo sale al cerrar el formulario, mira a ver si es que
durante el cierre le borras el valor al cboProvincia, entonces se dispara el
SelectedIndexChanged, y el SelectedCustomerID queda vacío, con lo que
FindByProvinciaID no lo encuentra y devuelve Nothing. Lo mejor es que lo
ejecutes con el debugger y le pongas un punto de ruptura para examinar las
variables y ver qué es lo que está pasando.
Respuesta Responder a este mensaje
#2 Juan de la Torre
12/03/2006 - 23:09 | Informe spam
?como se crea desde el diseñador grafico la funcion findbyprovinciaid() y
donde? puedo localizar el codigo original de esta funcion que pertenece a la
base de datos notrhwind por mas que la busco por todo el codigo fuente no lo
localizo. crei que era un indice. Soy nuevo en esto y estoy muy despistado.
Gracias por vuestra ayuda. Si conoceis algun tutorial que aclare esto os lo
agradeceria. Tambien necesito informacion del metodo "getchilrows"

"Alberto Poblacion" wrote:

"Juan de la Torre" wrote in
message news:
> hola sabios amigos, necesito de vuestra ayuda, tengo el siguiente codigo:
>
> Private Sub cboProvincia_SelectedIndexChanged(ByVal sender As
> System.Object,
> ByVal e As System.EventArgs) Handles cboProvincia.SelectedIndexChanged
>
> Dim SelectedCustomerID As String = New
> String(Me.cboProvincia.SelectedValue)
>
> Dim drSelectedCustomer As DataRow > > Me.ProvinciaPoblacionDS.Provincias.FindByProvinciaID(SelectedCustomerID)
>
> Dim draOrders As DataRow()
> draOrders = drSelectedCustomer.GetChildRows("CustomersOrders")
>
> al ejecutarlo me sale un error en la ultima linea, el siguiente error:
>
> Referencia a objeto no establecida como instancia de un objeto.
>
> (el error sale al cerrar el formulario)
> donde esta el error? pues esta copiado de un ejemplo y esta copiado tal
> cual.

Te sale "referencia a objeto no establecida" en una linea cuya única
referencia a objeto es el drSelectedCustomer. Por lo tanto se deduce que a
esa linea está llegando Nothing dentro de drSelectedCustomer. Como esa
variable la establece en la linea anterior la función FindByProvinciaID,
tendrás que revisar el código que tienes escrito dentro de dicha función
para ver por qué te devuelve Nothing.
Por la forma en que está escrita la sentencia, parece que
FindByProvinciaID pertenece a un TableAdapter, y me imagino que lo habrás
creado desde el diseñador gráfico y no desde código. En ese caso, revisa la
sentencia SQL que le has metido, y los parámetros que recibe, porque parece
que no los está interpretando como lo deseas en tu código.
Si el error solo sale al cerrar el formulario, mira a ver si es que
durante el cierre le borras el valor al cboProvincia, entonces se dispara el
SelectedIndexChanged, y el SelectedCustomerID queda vacío, con lo que
FindByProvinciaID no lo encuentra y devuelve Nothing. Lo mejor es que lo
ejecutes con el debugger y le pongas un punto de ruptura para examinar las
variables y ver qué es lo que está pasando.




Respuesta Responder a este mensaje
#3 Alberto Poblacion
13/03/2006 - 08:11 | Informe spam
"Juan de la Torre" wrote in
message news:
?como se crea desde el diseñador grafico la funcion findbyprovinciaid() y
donde?



Bueno, no necesariamente tiene por qué estar creada desde diseño gráfico,
puede estar hecha a mano dentro del programa. Desde el diseñador, se pincha
en el tableadapter y se usa el "smart tag" (la flechita verde) para lanzar
un asistente de configuración.

por mas que la busco por todo el codigo fuente no lo
localizo



Pincha encima de la función con el botón derecho del ratón y en el menú
de contexto que aparece selecciona "ir a la definición". De esta manera te
localiza dónde está el código fuente.

crei que era un indice.



Para buscar registros en la base de datos basándose en el valor de un
campo, es bueno que ese campo tenga un índice, pero no es suficiente la mera
existencia del índice para que en el código fuente se pueda buscar por él.
Hay que añadir una función que contenga una "Select" que busque por ese
campo.


Si conoceis algun tutorial que aclare esto os lo
agradeceria.



Si tienes instalada en tu equipo la librería de MSDN, busca en el índice
"TableAdapter queries, creating".


Tambien necesito informacion del metodo "getchilrows"



http://msdn.microsoft.com/library/d...stopic.asp
Respuesta Responder a este mensaje
#4 Juan de la Torre
13/03/2006 - 23:07 | Informe spam
No hay manera de que funcione he probado mil formas. Lo que quiero hacer es
lo siguiente: en un combobox hago un enlace a datos y en el mismo me salen
todas las provincias que previamente he dado de alta. Despues lo que necesito
es saber que provincia se ha señalado y obtener en otro combobox con las
poblaciones relacionadas a esa provincia. si lo hago con la base de datos
northwind no hay problema y funciona pero al pasarlo a mi aplicacion me
falla. Creo que el error esta en la funcion findbyProvinciaID. No se que
pasos previos hay que hacer para que esta funcion funcione correctamente. He
encontrado un gran tutorial en msdn pero usa tambien findbyCustomerID de
northwind y tengo el mismo problema, no se como programarla desde cero.
Gracias por tu ayuda y tu tiempo.

"Alberto Poblacion" wrote:

"Juan de la Torre" wrote in
message news:
> ?como se crea desde el diseñador grafico la funcion findbyprovinciaid() y
> donde?

Bueno, no necesariamente tiene por qué estar creada desde diseño gráfico,
puede estar hecha a mano dentro del programa. Desde el diseñador, se pincha
en el tableadapter y se usa el "smart tag" (la flechita verde) para lanzar
un asistente de configuración.

> por mas que la busco por todo el codigo fuente no lo
> localizo

Pincha encima de la función con el botón derecho del ratón y en el menú
de contexto que aparece selecciona "ir a la definición". De esta manera te
localiza dónde está el código fuente.

> crei que era un indice.

Para buscar registros en la base de datos basándose en el valor de un
campo, es bueno que ese campo tenga un índice, pero no es suficiente la mera
existencia del índice para que en el código fuente se pueda buscar por él.
Hay que añadir una función que contenga una "Select" que busque por ese
campo.


> Si conoceis algun tutorial que aclare esto os lo
> agradeceria.

Si tienes instalada en tu equipo la librería de MSDN, busca en el índice
"TableAdapter queries, creating".


> Tambien necesito informacion del metodo "getchilrows"

http://msdn.microsoft.com/library/d...stopic.asp




email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida