DataSet Y MoveNext Ayuda Por Favor

05/12/2006 - 03:44 por edcha | Informe spam
Hola a todos espero qeu se encuentren bien, les escribo sobre lo
siguiente
En Vb6 para navegar en una tabla se usaba los Métodos MoveFirst,
MoveLast, MoveNext y MovePrevious de (ADO) Ahora en C# estoy cargando
un DataSet con un archivo XML y lo hago asi

DataSet ds = new DataSet();
// Crear un FileStream con el que leer el esquema System.IO
FileStream fsReadXml = new FileStream(fileTrad.xml, FileMode.Open);
ds.ReadXml(fsReadXml);

El asunto es ¿si existe algo similar a Vb6? para navegar en este
DataSet cargado con un XML.

Muchas Gracias por la Ayuda

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
05/12/2006 - 08:12 | Informe spam
"edcha" wrote in message
news:
En Vb6 para navegar en una tabla se usaba los Métodos MoveFirst,
MoveLast, MoveNext y MovePrevious de (ADO) Ahora en C# estoy cargando
un DataSet con un archivo XML y lo hago asi

DataSet ds = new DataSet();
FileStream fsReadXml = new FileStream(fileTrad.xml, FileMode.Open);
ds.ReadXml(fsReadXml);

El asunto es ¿si existe algo similar a Vb6? para navegar en este
DataSet cargado con un XML.



El DataSet tendrá dentro una o varias tablas, dependiendo del XML que se
haya cargado. Lo primero es separar una de las tablas:

DataTable dt = ds.Tables[0];

Lógicamente, si en lugar de una hay varias, habrá que ir cambiando el
[0] por el número de la tabla cuyos registros se quieran recorrer. El número
total de tablas que el DataSet ha encontrado en el XML será ds.Tables.Count.
Una vez que tenemos la tabla, ésta contiene los registros en la
colección Rows. La colección se comporta como un array, es decir, accedemos
a cualquier elemento por su índice: dt.Rows[i], o bien podemos recorrerla
con un bucle "foreach":

foreach (DataRow dr in dt.Rows)
{
//dr contiene el siguiente registro
}

Si la quieres recorrer por índice:

for (int i=0; i<dt.Rows.Count; i++)
{
DataRow dr = dt.Rows[i];
//Procesar aquí el registro dr
}

Con este tipo de acceso, lógicamente el MoveNext, MovePrevious, etc.
equivalen a incrementar o decrementar i.
Respuesta Responder a este mensaje
#2 edcha
05/12/2006 - 20:17 | Informe spam
Gracias Alberto por tu gran ayuda con esto voy a intentar crear mi
MoveNext, MovePrevious, etc. pero si no es mucha molestia podrian darme
un ejemplo de como se puede agregar un nuevo registro.

Muchas gracias de nuevo
Respuesta Responder a este mensaje
#3 Alberto Poblacion
05/12/2006 - 21:35 | Informe spam
"edcha" wrote in message
news:
voy a intentar crear mi
MoveNext, MovePrevious, etc. pero si no es mucha molestia podrian darme
un ejemplo de como se puede agregar un nuevo registro.



Partiendo del ejemplo anterior en el que ya habíamos separado un
DataTable dt:

DataRow nuevaFila=dt.NewRow();
nuevaFila[0]="Campo uno";
nuevaFila[1]="Campo dos"; //etc
dt.Rows.Add(nuevaFila);

En lugar de nuevaFila[numero] tambien se puede usar
nuevaFila["nombrecolumna"].
En el ejemplo anterior los valores asignados a los campos son strings,
pero lógicamente si el campo fuera numérico o de otro tipo el valor asignado
tendría que ser del tipo correspondiente.

También se puede hacer todo de una vez:
dt.Rows.Add(new object[]{campo1, campo2, campo3...});

Con eso los valores se asignan en memoria a la tabla. Para salvarlos de
vuelta al XML habrá que hacer ds.WriteXml(fichero).
Respuesta Responder a este mensaje
#4 edcha
07/12/2006 - 01:45 | Informe spam
Muchas gracias me a resultado muy util
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida