Actualizacion de un dataTable hijo en otro form

22/11/2007 - 21:02 por lenitivista | Informe spam
Saludos, tengo el siguiente problema:

Tengo una aplicación windows en la cual he agregado un nuevo elemento
DataSet (dsAreas) que consta de 2 dataTables: dtAreas y dtAreaDetalle.
Estos dataTables los he relacionado como padre e hijo y con la opcion
Both Realation and Foreign Key constraint y Update y Delete en
cascada. Se relacionan mediante la columna Numero.
Este dataSet posteriormente lo voy a guardar en un archivo XML.

He creado 2 winFroms, uno frmArea que tiene un datagridView la cual he
enlazado con dtAreas, y otro form frmAreaDetalle que igualmente tiene
otro dataGrdiView pero enlazado a dtAreaDetalle.

En el primer form se carga de forma correcta el dataTablePadre si he
cargado el dataSet de un xml:
dsAreas.ReadXml(rutaDS, XmlReadMode.DiffGram);
y me muestra el gridView lleno.
Mi duda viene aqui, yo quiero seleccionar una de las filas del
gridView y darclick a un boton "Editar" que abra el otro form y que
muestre el dataGridView para llenar el detalle correspondiente del
dataTable hijo relacionado de la fila del padre que escogi, he tratado
de pasarle el indice con el siguiente codigo:


private void btnEditar_Click(object sender, EventArgs e)
{
dsAreas.WriteXml(rutaDS, XmlWriteMode.DiffGram);
string codArea = dsAreas.dtAreas.Rows[dgAreas.CurrentRow.Index]
[0].ToString();
frmAreaDetalle ofrmAreaD = new frmAreaDetalle(codArea);
ofrmAreaD.Show();
}

el cual lo pasa bien, pero no se como usar ese parametro pasado para
que se carge el dataTableHijo que tiene ese FK. ¿Como puedo hacer para
poder abrir correctamente en otro form los datos corrspondientes a la
fila seleccionada en el dataTable padre?

Por favor si alguien me puede ayudar en esto. Gracias.
 

Leer las respuestas

#1 Alberto Poblacion
22/11/2007 - 21:17 | Informe spam
En el formulario hijo puedes aprovechar que ya tienes una relación entre los
datatables para usar el método GetChildRows y sacar los registros hijos, por
ejemplo asi:

DataRow filaMadre = dtArea.Rows.Select("CodArea="+codArea)[0];
DataRow[] filasHijas = filaMadre.GetChildRows("NombreDelDataRelation");
datagridview1.DataSource = filasHijas;



wrote in message
news:
Saludos, tengo el siguiente problema:

Tengo una aplicación windows en la cual he agregado un nuevo elemento
DataSet (dsAreas) que consta de 2 dataTables: dtAreas y dtAreaDetalle.
Estos dataTables los he relacionado como padre e hijo y con la opcion
Both Realation and Foreign Key constraint y Update y Delete en
cascada. Se relacionan mediante la columna Numero.
Este dataSet posteriormente lo voy a guardar en un archivo XML.

He creado 2 winFroms, uno frmArea que tiene un datagridView la cual he
enlazado con dtAreas, y otro form frmAreaDetalle que igualmente tiene
otro dataGrdiView pero enlazado a dtAreaDetalle.

En el primer form se carga de forma correcta el dataTablePadre si he
cargado el dataSet de un xml:
dsAreas.ReadXml(rutaDS, XmlReadMode.DiffGram);
y me muestra el gridView lleno.
Mi duda viene aqui, yo quiero seleccionar una de las filas del
gridView y darclick a un boton "Editar" que abra el otro form y que
muestre el dataGridView para llenar el detalle correspondiente del
dataTable hijo relacionado de la fila del padre que escogi, he tratado
de pasarle el indice con el siguiente codigo:


private void btnEditar_Click(object sender, EventArgs e)
{
dsAreas.WriteXml(rutaDS, XmlWriteMode.DiffGram);
string codArea = dsAreas.dtAreas.Rows[dgAreas.CurrentRow.Index]
[0].ToString();
frmAreaDetalle ofrmAreaD = new frmAreaDetalle(codArea);
ofrmAreaD.Show();
}

el cual lo pasa bien, pero no se como usar ese parametro pasado para
que se carge el dataTableHijo que tiene ese FK. ¿Como puedo hacer para
poder abrir correctamente en otro form los datos corrspondientes a la
fila seleccionada en el dataTable padre?

Por favor si alguien me puede ayudar en esto. Gracias.

Preguntas similares