Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   Dataset Intocable??? (http://www.forosdelweb.com/f29/dataset-intocable-325450/)

victor211079 15/08/2005 23:09

Dataset Intocable???
 
Tengo un dataset declarado de esta forma:

Código PHP:

Public BaseRecepcion As New DataSet 

Bueno el asunto es que cuando el formulario se carga utilizo este dataset para sacar mucha informacion de una base, es decir hago como 5 consultas, EJ.: :pensando: :pensando:

Código:

StrSql = ""
            StrSql = " SELECT    IdActualizacion, NumDActividad, FechaCreacion, Paquete, "
            StrSql = StrSql & " Tamaño, Nombre, RutaPaquete, Desarrollador, IdSolucion"
            StrSql = StrSql & " FROM Actualizacion"
            StrSql = StrSql & " WHERE    (IdActualizacion = ANY"
            StrSql = StrSql & " (SELECT    IdActualizacion"
            StrSql = StrSql & " FROM RecepcionPupilo"
            StrSql = StrSql & " WHERE      (IdActPupilo = " & IdActpupilo & ") ))"   
            BaseRecepcion = Base.Listado(StrSql, "Actualizacion")
            For Each Fila In BaseRecepcion.Tables("Actualizacion").Rows
                'EXTRAIGO LOS DATOS DEL PROGRAMA
                '**************************************************************************
                'SELECCIONO LOS DATOS DEL PROGRAMNA ASOCIADO A LA ACTUALIZACION
                'EXTRAIDA EN LA CONSULTA ANTERIOR
                '**************************************************************************
                StrSql = ""
                StrSql = StrSql & " SELECT  IdSolucion, NumDActividad, NombreSolucion,
                StrSql = StrSql & " Descripcion, FechaInicio"
                StrSql = StrSql & " FROM Solucion"
                StrSql = StrSql & " WHERE (IdSolucion = " & Trim(Fila("IdSolucion")) & ")"
                BaseRecepcion = Base.Listado(StrSql, "Solucion")

(Nota: Base.Listado(StrSql, "NombreTabla") es un metodo de una clase que se conecta a sqlserver y me entrega un dataset)

Bueno, el problema radica cuando trato de usar ese dataset en un button y lo hago de esta forma:

Código:

StrSql = ""
StrSql = StrSql & " SELECT  IdSolucionPupilo, Idsolucion, "
StrSql = StrSql & " IdPupilo, RutaSolucion, CantArchivos, VersionEjecutable"
StrSql = StrSql & " FROM SolucionPupilo"
StrSql = StrSql & " WHERE Idsolucion =" & BaseRecepcion.Tables("Actualizacion").Rows(0)("IdSolucion")
StrSql = StrSql & " AND IdPupilo = " & BaseRecepcion.Tables("RecepcionPupilo").Rows(0)("IdPupilo")

BaseRecepcion = Base.Listado(StrSql, "SolucionPupilo")


y me genera un error especificamente en:
Código PHP:

BaseRecepcion.Tables("Actualizacion").Rows(0)("IdSolucion"

y en
Código PHP:

BaseRecepcion.Tables("RecepcionPupilo").Rows(0)("IdPupilo"

el error que me tira:
Código HTML:

  "Excepción no controlada del tipo 'System.NullReferenceException' en XP.exe"
 "Información adicional: Referencia a objeto no establecida como instancia de un objeto."

El asunto es que como ado.net es una arquitectura pensada para trabajar desconectada pense que podria reutilizar la informacion que guarde en el dataset que utilizo al principio para mostrar la informacion de la actualizacion.. :pensando:

:no: ¡¡¡¡¡¡ Pero no funciono !!!!! :no:

y la pregunta es: ¿Porque no puedo adquirir la informacion que use anteriormete en el load del formulario?, ademas el dataset esta declarado dentro de la clase pero fuera del boton y fuera del load. :serio: :serio:

Si alguien puede ayudar De ante mano le doy las gracias, por su tiempo.. :arriba: :arriba:

Victor Rodriguez
Santiago chile


Recuerden: Enseñar es la mejor forma de aprender :cool:

pelikulero 16/08/2005 08:29

//Si es para la WEB en C#
DataSet dsDatos;

[PageLoad....]
dsDatos = new Dataset();
dsDatos = LLenaInfo();
Session["Informacion"] = dsDatos;

[Cualquier otra función....]
dsDatos = (DataSet)Session["Información"];

Es una forma de hacerlo mas no se si sea la de mejor performance...

RootK 16/08/2005 09:14

recuerda que si estas hablando de web, y quieres usar el valor de la variable la debes estar cargando en todo momento, porque cuando das click se genera un postback y tienes que volver a cargar tu valor ya que depues pasa por el evento del que fue llamado... :si:


Por cierto, si vas a concaternar varios string te recomiendo que lo hagas mejor con un StringBuilder ya que tiene mucho mayor perfomance y rapidez..

ejemplo:

Cita:

Dim sb as New System.Text.StringBuilder()

sb.Append("SELECT IdActualizacion, NumDActividad, FechaCreacion, Paquete, ")
sb.Append("Tamaño, Nombre, RutaPaquete, Desarrollador, IdSolucion...")
...

y al final para obtener el texto harías:

Cita:

BaseRecepcion = Base.Listado(sb.ToString(), "Solucion")


Espero haber sido claro..


La zona horaria es GMT -6. Ahora son las 07:43.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.