Datarow

04/01/2005 - 20:07 por Rodia | Informe spam
Hola:
tengo una clase y dentro un procedimiento, el
procedimiento pide un datarow como parametro y llena ese
datarow segun lo que se pida:

Public miprocedimiento(Byval drow as datarow)
...
codigo de busqueda y llenado de datarow
drow = ds.tables("Mitabla").rows(0)
...
Exit Sub

El problema es que cuando mando llamar al procedimiento,
ya no puedo sacar valores del datarow, me imagino que por
que el dataset y la conexion se eliminan al llegar al
exit sub

dim dr as datarow
miobjeto.miprocedimiento(dr)
msgbox(dr("micolumna"))

la conexion y el llenado del datarow lo hace correcto,
pero en el msgbox me manda un error que el objeto no es
parte de la instancia,

Alguien puede ayudarme a traer un datarow de un
procedimineto de una clase que usa sus propias formas de
comunicacion y solo me entregue un valor de un datarow

Gracias

Preguntas similare

Leer las respuestas

#1 Pedro Luna Montalvo
04/01/2005 - 20:50 | Informe spam
Saludos,

Public miprocedimiento(Byval drow as datarow)
...
codigo de busqueda y llenado de datarow
drow = ds.tables("Mitabla").rows(0)
...
Exit Sub



El problema es que tu parametro DataRow es por valor, por tanto la
asignacion que internamente haces tiene validez solamente dentro del
procedimiento.

Puedes hacer dos cosas:

1. Cambiar el parametro por referencia (no te lo recomiendo):

Public Sub MiProcedimiento(ByRef dRow As DataRow)



2. Cambiar el procedimiento por una funcion (mi recomendacion):

Public Function MiFuncion() As DataRow
...
Return ds.tables("Mitabla").rows(0) ' Aqui retorno el valor de
la funcion y finalizo la misma
End Function


Saludos
Pedro Luna, [MVP VB.NET]
Gye, Ecu
Respuesta Responder a este mensaje
#2 Rodia
04/01/2005 - 21:19 | Informe spam
Muchas gracias, te lo agradezco, sali a comer un
proecupado

Saludos,

Public miprocedimiento(Byval drow as datarow)
...
codigo de busqueda y llenado de datarow
drow = ds.tables("Mitabla").rows(0)
...
Exit Sub



El problema es que tu parametro DataRow es por valor,


por tanto la
asignacion que internamente haces tiene validez


solamente dentro del
procedimiento.

Puedes hacer dos cosas:

1. Cambiar el parametro por referencia (no te lo


recomiendo):

Public Sub MiProcedimiento(ByRef dRow As DataRow)



2. Cambiar el procedimiento por una funcion (mi


recomendacion):

Public Function MiFuncion() As DataRow
...
Return ds.tables("Mitabla").rows(0) ' Aqui


retorno el valor de
la funcion y finalizo la misma
End Function


Saludos
Pedro Luna, [MVP VB.NET]
Gye, Ecu


.

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