Foros del Web » Programación para mayores de 30 ;) » .NET »

Disculpen mi insistencia Dataset Tipados

Estas en el tema de Disculpen mi insistencia Dataset Tipados en el foro de .NET en Foros del Web. En un anterior post http://www.forosdelweb.com/f29/alcance-dataset-541594/ mencionaba el alcance de los datasets, lo cual del tiempo hasta ahora aun me intriga. el punto es que deseo ...
  #1 (permalink)  
Antiguo 11/01/2008, 15:10
 
Fecha de Ingreso: diciembre-2005
Mensajes: 3
Antigüedad: 18 años, 5 meses
Puntos: 0
Disculpen mi insistencia Dataset Tipados

En un anterior post
http://www.forosdelweb.com/f29/alcance-dataset-541594/
mencionaba el alcance de los datasets, lo cual del tiempo hasta ahora aun me intriga.

el punto es que deseo que vb.net no vuelva a llenar el dataset cada vez que abra uno de los multiples formularios.

por ejemplo, si deseo realizar un listado de los clientes, los cargue en el formulario principal y cuando abra el formulario de clientes, solo actualice los datos pero no los llene desde 0 (supongo que el fill desde un dataset con datos se demora menos que uno vacio).

haciendo unas pruebas me di cuenta de lo siguiente

- cada formulario con dataset tipado genera un nuevo dataset (myDbdataset = new mydbdataset ), por tanto esta vacio.

- aunque en el formulario anterior haya llenado los mismos datos este lo hará nuevamente

- dada esta situación, puse los tableadapters en el formulario padre y los llame desde el formulario hijo

Código:
Imports padre = miproyecto.padre

Private Sub hijo_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
              padre.SELECT_ClientesTableAdapter.Fill(Me.myDbdataset.SELECT_SELECT_Clientes)


End Sub
- luego en el hijo.designer.vb cambie la linea
Código:
me.mydbdataset = new miproyecto.mydbdataset()
por
Código:
me.mydbdataset = miproyecto.padre.mydbdataset
- y rataplan funcionó, cargue el dataset en el padre y luego en el hijo, antes de hacer el fill, ya tenía los datos

- el problema fue que al ir al designer del formulario hijo me arrojaba error, pero si compilaba funcionaba.

Este es mi primer proyecto, la verdad no se, si mi inquietud será válida, he estado mirando en otros foros (en ingles) y no he podido encontrar información al respecto


disculpen mi insistencia

Saludos .. .. .
  #2 (permalink)  
Antiguo 15/01/2008, 05:54
 
Fecha de Ingreso: julio-2005
Ubicación: Córdoba
Mensajes: 254
Antigüedad: 18 años, 10 meses
Puntos: 0
Re: Disculpen mi insistencia Dataset Tipados

mira, amigo, tambien podria ser valido declarar en el new() de tu form hijo, el paso("por referencia" del dataset de tu form padre.

sería algo asi:
Public Sub New( ByRef midataset )

' This call is required by the Windows Form Designer.
InitializeComponent()


End Sub

Entonces cuando abres el form hijo:

dim newchildform as new formhijo ( midataset )

el se declara con el paso por referencia de tu dataset hacia el.

El dataset quedará en el hijo en el momento de su inicializacion.

Espero te sirva. Saludos !
__________________
Facil ! Lo unico que hay que hacer para no ser animal, es razonar !
  #3 (permalink)  
Antiguo 15/01/2008, 08:47
 
Fecha de Ingreso: diciembre-2005
Mensajes: 3
Antigüedad: 18 años, 5 meses
Puntos: 0
Re: Disculpen mi insistencia Dataset Tipados

eeee.... funciono.. gracias .. .

pero después de mucho rato insistiendo (no me funcionaba) me di cuenta que cuando vuelves a asignar el dataset

Código:
public sub new (dataset)
          me.midatasetTipado=dataset
end sub
la propiedad datasource de los bindingsource se elimina, asi que hay que volver a asignarlos ...

muchas gracias....
  #4 (permalink)  
Antiguo 18/01/2008, 12:45
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 3 meses
Puntos: 50
Re: Disculpen mi insistencia Dataset Tipados

. . . me quedo en seguir trabajando con Generics and Collections (no me gustan los datasets)

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:38.