Dataset y Threads

13/08/2004 - 15:22 por Joan Carles Jiménez | Informe spam
Hola a tod@s.

Tengo un par de problemas que no encuentro solución.

1) Tengo un dataset que me gustaria cargar en otro hilo para no bloquear la
aplicació/ordenador en caso de que el numero de registros sea elevado. He
mirado como lo hace los ejemplos del .NET pero parece ser que no funcionan
del todo bien. Cuando hago el fill del dataset, se queda clavado hasta que
ha acabado de cargar los registros. ¿Alguna idea (o esquema) de como montar
el sistema?

2) Una vez cargado el dataset, lo muestro en un datagrid. En la carga
inicial, el indice del dataset y del datagrid coinciden y cuando hago click
sobre una fila del datagrid, muestro la información en la ficha del registro
haciendo coincidir los índices. El problema està cuando ordeno alguna
columna del datagrid. Los indices ya no coinciden. ¿Cómo puedo saber la
posición del dataset a la cual pertenece un registro del datagrid?

Espero haberme explicado bien. Sinó, aquí estoi para aclarecer cualquier
duda. Gracias por adelantado.

Joan Carles Jiménez
jcjimenez@infomail.lacaixa.es
 

Leer las respuestas

#1 pablo crosio
13/08/2004 - 18:16 | Informe spam
hola!

te paso un ejemplo para 1):

using System;
using System.Threading;
using System.Data;
using System.Data.OleDb;

public class HebraDeTrabajo
{
public static void HacerTrabajo()
{
DataSet ds = new DataSet();
OleDbDataAdapter da = new OleDbDataAdapter("SELECT *
FROM xxx", new OleDbConnection("Provider=...;Data
Source=...;..."));
da.Fill(ds);
Console.WriteLine("ds.Tables[0].Rows.Count: {0}",
ds.Tables[0].Rows.Count);
}
}
class HebraPrincipal
{
public static void Main()
{
ThreadStart miDelegado = new ThreadStart
(HebraDeTrabajo.HacerTrabajo);
Thread miHebra = new Thread(miDelegado);
miHebra.Start();
for(int i = 0; i<10; i++)
{
Console.WriteLine("Hebra principal activa.");
Thread.Sleep(1000);
}
}
}

fijate que el mensaje sale sin bloquerse mientras se carga
el DataSet

con respecto a 2) realmente no entiendo el problema
hoy es viernes!

salu2!!

pablo



Hola a

Tengo un par de problemas que no encuentro solución.

1) Tengo un dataset que me gustaria cargar en otro hilo


para no bloquear la
aplicació/ordenador en caso de que el numero de registros


sea elevado. He
mirado como lo hace los ejemplos del .NET pero parece ser


que no funcionan
del todo bien. Cuando hago el fill del dataset, se queda


clavado hasta que
ha acabado de cargar los registros. ¿Alguna idea (o


esquema) de como montar
el sistema?

2) Una vez cargado el dataset, lo muestro en un datagrid.


En la carga
inicial, el indice del dataset y del datagrid coinciden y


cuando hago click
sobre una fila del datagrid, muestro la información en la


ficha del registro
haciendo coincidir los índices. El problema està cuando


ordeno alguna
columna del datagrid. Los indices ya no coinciden. ¿Cómo


puedo saber la
posición del dataset a la cual pertenece un registro del


datagrid?

Espero haberme explicado bien. Sinó, aquí estoi para


aclarecer cualquier
duda. Gracias por adelantado.

Joan Carles Jiménez




.

Preguntas similares