C sharp - GRAN problema

 
Vista:

GRAN problema

Publicado por AProg (1 intervención) el 21/03/2006 23:46:55
Ojalá me sepa explicar...
Yo tengo un datagrid digamos que en el la primera fila tengo un registro XX cuyo datakey es 1, y en la ultima fila tengo un registro AA cuyo datakey es 20.

Luego de esto doy ordenar por este campo quedando entonces ahora AA en la primera fila.

El problema es cuando hago Eliminar en este caso de AA (Deletecommand), al entrar en este metodo yo capturo con DataDrid1.DataKeys[e.Item.ItemIndex].ToString(); la primary key para hacer la referencia al momento de hacer el delete en la tabla.
Lo raro del caso es que esta función me devuleve como DataKey 1 es decir el DataKey que pertenece a XX y no el de AA que es el que seleccione para eliminar(deberia ser 20), por esto el como coje el uno me elimina de la tabla es el registro XX ?¡?¡

Que podré hacer?¡?¡ Ayuda Porfavor

Muchas Gracias por la atención.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:GRAN problema

Publicado por maikel (41 intervenciones) el 22/03/2006 17:12:51
mmm, yo lo hago de otra manera y me funciona.

Si tengo la tabla pej "Cliente" en el Dataset y un dataGridCli, para borrar la fila que seleccioné, en el codigo del evento Eliminar-Click hago:

//1º) capturo el indice de la fila seleccionada en el datagrid

int indice = dataGridCli.CurrentRowIndex;

if ( indice != -1 ) { //para que no haga nada si no pulsé en ninguno

string idCliente = dataGridCli [c,0].ToString(); //en la columna '0' de cada fila esta el id del cliente


//recorro la tabla Cliente y al encontrar al cliente, lo borro

DataTable referencia = DataSet.Tables["Cliente"]; //referencia a la tabla

foreach (DataRow MiFila in referencia.Rows){

if (MiFila[0].ToString() == idCliente) {
MiFila.Delete(); //borramos la fila
referencia.AcceptChanges(); //aceptamos los cambios en la tabla
break; //para no recorrer mas el foreach, ya encontre la fila
} //if
}//foreach

}// if

Espero que te valga. Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar