DataSet, DataTable y DataView

02/10/2007 - 16:59 por Item | Informe spam
Hola

Tengo que refrescar esto un poco y me vendría muy bien una pequeña ayuda.

Tengo un DataSet con 10 registros, por ejemplo, así como su correspondiente
DataTabla y DataView, cada con una función diferente.

Quiero eliminar un registro determinado del DataSet, pero tiene que haber
una forma simple de, a traves del

DataView.rowfilter = dato;

La fila que queda en el DataView, asignarla al DataSet y así poder borrarlo.

Para luego refrescar el DataView hasta que no quede ninguna.

Una ayuda por favor y gracias

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
02/10/2007 - 21:21 | Informe spam
"Item" wrote in message
news:
[...]
DataView.rowfilter = dato;

La fila que queda en el DataView, asignarla al DataSet y así poder
borrarlo.



La fila que queda, si es que queda una, es la dataView[0]. El
correspondiente .Row es el DataRow del DataTable. Éste puedes borrarlo con
un .Remove:

elDataView.rowfilter = dato;
elDataTable.Rows.Remove(elDataView[0].Row);

Esto suprime por completo la fila. Si lo único que quieres es marcarla
como "borrada" para luego actualizar la BD a través del Update de un
DataAdapter, entonces es todavía más sencillo:

elDataView.rowfilter = dato;
elDataView[0].Delete();
Respuesta Responder a este mensaje
#2 Item
02/10/2007 - 21:49 | Informe spam
El tema está en saber en que fila del DataSet se encuentra el registro que
quiero borrar.

Es decir, si tiene 10 registros y el filtro del DataView me devuelve el
registro 7, como se que es el 7 o como puedo posicionar a partir del
DataView el DatasSet para borrar la fila, que eso si que se como se hace.

gracias.


"Item" escribió en el mensaje
news:
Hola

Tengo que refrescar esto un poco y me vendría muy bien una pequeña ayuda.

Tengo un DataSet con 10 registros, por ejemplo, así como su
correspondiente DataTabla y DataView, cada con una función diferente.

Quiero eliminar un registro determinado del DataSet, pero tiene que haber
una forma simple de, a traves del

DataView.rowfilter = dato;

La fila que queda en el DataView, asignarla al DataSet y así poder
borrarlo.

Para luego refrescar el DataView hasta que no quede ninguna.

Una ayuda por favor y gracias

Respuesta Responder a este mensaje
#3 Alberto Poblacion
03/10/2007 - 08:03 | Informe spam
"Item" wrote in message
news:
El tema está en saber en que fila del DataSet se encuentra el registro que
quiero borrar.
Es decir, si tiene 10 registros y el filtro del DataView me devuelve el
registro 7, como se que es el 7



Que yo sepa, no ha ninguna forma directa de saber el número de fila
dentro del DataTable, a no ser que es añadas a las filas una columna que
lleve el número. La alternativa sería usar la clave primaria, o cualquier
otra columna que tenga una restricción de unicidad, y hacer una búsqueda de
ese dato sobre la tabla original hasta encontrar la fila.
Pero no comprendo para qué necesitas esto. Si solo es para borrar la
fila, se puede borrar perfectamente sin saber cuál es el número, usando un
Remove o un Delete, ninguno de los cuales toma un número de fila.

o como puedo posicionar a partir del DataView el DatasSet para borrar la
fila, que eso si que se como se hace.



Esto no tiene ningún sentido. ¿Qué quiere decir "posicionar" el DataSet?
Los Datasets no tienen posición. Símplemente son contenedores para datos, y
contienen todos los datos a la vez, no mantienen ningún registro destacado
respecto a los demás.
Respuesta Responder a este mensaje
#4 Anti_Work
15/10/2007 - 14:36 | Informe spam
Hola, Encontre este ejemplo, pero no se si funciona.

Dim fila As String
Dim dv As New DataView()
dv.Table = DataSet_Master.Tables(iTableName)
dv.Sort = FieldSearch
fila = dv.Find(strDato)
Me.BindingContext(DataSet_Master, iTableName).Position = fila

Tengo entendido (corrijanme si no) que el metodo Find se aplica al campo que
se asignó en dv.Sort= y esto funcióna sólo para un solo campo.
Por favor, los que lo prueben y lleguen a alguna conclusión comentenla aquí,
porque el tema de "buscar dentro del dataset" en general no se lo encuentra
información.

Aún extraño los viejos métodos FindFirst y FindNext de DAO!!!

saludos


"Alberto Poblacion" wrote:

"Item" wrote in message
news:
> El tema está en saber en que fila del DataSet se encuentra el registro que
> quiero borrar.
> Es decir, si tiene 10 registros y el filtro del DataView me devuelve el
> registro 7, como se que es el 7

Que yo sepa, no ha ninguna forma directa de saber el número de fila
dentro del DataTable, a no ser que es añadas a las filas una columna que
lleve el número. La alternativa sería usar la clave primaria, o cualquier
otra columna que tenga una restricción de unicidad, y hacer una búsqueda de
ese dato sobre la tabla original hasta encontrar la fila.
Pero no comprendo para qué necesitas esto. Si solo es para borrar la
fila, se puede borrar perfectamente sin saber cuál es el número, usando un
Remove o un Delete, ninguno de los cuales toma un número de fila.

> o como puedo posicionar a partir del DataView el DatasSet para borrar la
> fila, que eso si que se como se hace.

Esto no tiene ningún sentido. ¿Qué quiere decir "posicionar" el DataSet?
Los Datasets no tienen posición. Símplemente son contenedores para datos, y
contienen todos los datos a la vez, no mantienen ningún registro destacado
respecto a los demás.


Respuesta Responder a este mensaje
#5 Item
15/10/2007 - 17:36 | Informe spam
¿Que se supone que es FieldSearch?


"Anti_Work" escribió en el mensaje
news:
Hola, Encontre este ejemplo, pero no se si funciona.

Dim fila As String
Dim dv As New DataView()
dv.Table = DataSet_Master.Tables(iTableName)
dv.Sort = FieldSearch
fila = dv.Find(strDato)
Me.BindingContext(DataSet_Master, iTableName).Position = fila

Tengo entendido (corrijanme si no) que el metodo Find se aplica al campo
que
se asignó en dv.Sort= y esto funcióna sólo para un solo campo.
Por favor, los que lo prueben y lleguen a alguna conclusión comentenla
aquí,
porque el tema de "buscar dentro del dataset" en general no se lo
encuentra
información.

Aún extraño los viejos métodos FindFirst y FindNext de DAO!!!

saludos


"Alberto Poblacion" wrote:

"Item" wrote in message
news:
> El tema está en saber en que fila del DataSet se encuentra el registro
> que
> quiero borrar.
> Es decir, si tiene 10 registros y el filtro del DataView me devuelve el
> registro 7, como se que es el 7

Que yo sepa, no ha ninguna forma directa de saber el número de fila
dentro del DataTable, a no ser que es añadas a las filas una columna que
lleve el número. La alternativa sería usar la clave primaria, o cualquier
otra columna que tenga una restricción de unicidad, y hacer una búsqueda
de
ese dato sobre la tabla original hasta encontrar la fila.
Pero no comprendo para qué necesitas esto. Si solo es para borrar la
fila, se puede borrar perfectamente sin saber cuál es el número, usando
un
Remove o un Delete, ninguno de los cuales toma un número de fila.

> o como puedo posicionar a partir del DataView el DatasSet para borrar
> la
> fila, que eso si que se como se hace.

Esto no tiene ningún sentido. ¿Qué quiere decir "posicionar" el
DataSet?
Los Datasets no tienen posición. Símplemente son contenedores para datos,
y
contienen todos los datos a la vez, no mantienen ningún registro
destacado
respecto a los demás.


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