Derivar de DataSet.

24/05/2006 - 08:34 por Jose Antonio | Informe spam
Hola a todos, tengo una clase Data que deriva de DataTable y se le añaden
algunos metodos que necesito, esto me funciona correctamente.

Lo que no encuentro es como tengo que derivar una clase de DataSet para que
en vez de una coleccion de DataTables, gestione una coleccion de Datas, ya
que no me permite hacer type de DataSet.Tables[0] a Data, lo hago asi Data
d=DataSet.Tables[0] as Data, pero me devuelve siempre null.


Saludos.

Preguntas similare

Leer las respuestas

#1 Paco Ferre
25/05/2006 - 11:43 | Informe spam
Hola, a ver si hay suerte.

No sé cómo pueblas la colección Tables del objeto DataSet y tampoco
sé si esto te serviría.

DataSet.Tables.Add((DataTable) tuObjetoData);

Ya dirás.

Saludos,

Paco
Respuesta Responder a este mensaje
#2 Jose Antonio
26/05/2006 - 09:06 | Informe spam
Ese es el problema, que yo no pueblo el Dataset, lo hace un procedimiento
almacenado de varias sentencias.

"Paco Ferre" escribió en el mensaje
news:
Hola, a ver si hay suerte.

No sé cómo pueblas la colección Tables del objeto DataSet y tampoco
sé si esto te serviría.

DataSet.Tables.Add((DataTable) tuObjetoData);

Ya dirás.

Saludos,

Paco
Respuesta Responder a este mensaje
#3 Paco Ferre
26/05/2006 - 10:46 | Informe spam
Lo imaginaba,

También imagino que no es viable, pero podrías pensar en una
propiedad de tipo DataTable en tus objetos de negocio.

Por tanto lo que quieres hacer:
d = DataSet.Tables[0] as Data
que no es posible.

Pasaría a ser:
d.ObjetoDataTable = DataSet.Tables[0]

Y cada vez que quieras hacer que tu objeto Data se "comporte" como un
DataTable te basta con escribir:
d.ObjetoDataTable

Otra vez, a ver si hay suerte...

Saludos,

Paco
Respuesta Responder a este mensaje
#4 Jose Antonio
27/05/2006 - 20:21 | Informe spam
No entiendo lo que me explicas, ni como hacerlo.

Gracias.
"Paco Ferre" escribió en el mensaje
news:
Lo imaginaba,

También imagino que no es viable, pero podrías pensar en una
propiedad de tipo DataTable en tus objetos de negocio.

Por tanto lo que quieres hacer:
d = DataSet.Tables[0] as Data
que no es posible.

Pasaría a ser:
d.ObjetoDataTable = DataSet.Tables[0]

Y cada vez que quieras hacer que tu objeto Data se "comporte" como un
DataTable te basta con escribir:
d.ObjetoDataTable

Otra vez, a ver si hay suerte...

Saludos,

Paco
Respuesta Responder a este mensaje
#5 Paco Ferre
29/05/2006 - 10:37 | Informe spam
OK, ahora mismo tienes algo así:

public class Data : DataSet
...


Y lo que propongo (si es que te sirve bien)

public class MiData
{
private DataTable dsLocal = new DataTable();

public DataTable ObjetoDataTable
{
get
{
return dsLocal;
}
set
{
dsLocal = value;
}
}

public DataRowCollection Rows
{
get
{
return dsLocal.Rows;
}
}

...

}

De esta forma podrías establecer (método set) d.ObjetoDataTable DataSet.Tables[0...n] como te dije a diferentes objetos Data.
Y por otro lado, d.ObjetoDataTable (método get) te permite trabajar
con el objeto DataTable.

Aparte de esto, si no te gusta eso de usar d.ObjetoDataTable, también
puedes hacer como con la propiedad Rows para todo el resto de
propiedades y métodos de DataTable que necesites. Entonces, hasta
implementando IListSource imagino que podrías "enchufarlo"
directamente a un DataGrid, DataView, ... pero no lo he probado.

Saludos,

Paco
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida