Todoexpertos.com
http://www.todoexpertos.com
La respuesta está en Internet
Información de la pregunta
Título: Consulta eliminar registro desde grilla
Experto: duke_quakem
Valoración: 3
Fecha: 29/05/2008


Consulta eliminar registro desde grilla
Hola mira tengo un pequeño problema tengo un formulario con tabcontrol y varias pestañas y cada pesta tiene una grilla. y para eliminar un registro registro tengo el siguiente procedimiento para eliminar private void KeyDown(object sender, KeyEventArgs e) {     if (e.KeyValue == 46)     {         if (MessageBox.Show("¿Desea eliminar este registro?", "Confirmación",                   MessageBoxButtons.YesNo) != DialogResult.Yes) return;     GridView view = sender as GridView; view.DeleteRow(view.FocusedRowHandle);     } } Y me tira un error de de "referencia a objeto no establecida como instancia   de un objeto" el problema que ese procedimiento me funciona cuando usa una grilla en un solo formulario noc si tendra algo que ver. prove colocando view=new gridview();  pero no me elimina el registro No se ti tendras alguna idea. o alguna ayuda para eliminar un registro de una grilla Atte Felipe Barria

Consulta eliminar registro desde grilla
Hola Por lo general, cuando se trabaja con Gridview o DataGridView, este generalmente obtiene sus datos desde un DataTable o un DataSet. Voy a trabajar usando este supuesto ya que en el codigo que me das no puedo deducir de donde exactamente obtiene sus datos el GridView. El GrdView, a pesar de que te permite hacer la modificación y eliminación de registros, es solo un visualizador de los datos que se encuentran en su fuente, y cuando uno da la orden de que se renueve la información, éste desecha sus datos, vuelve a consultar a su fuente y muestra los datos en pantalla. Asi, cada vez que ejecutas un cambio, en este caso una eliminación, y vuelves a cargar el GridView, no muestra los cambios ya que los datos en el origen (DataTable o DataSet) no han sido modificados. Lo que hay que hacer para solucionar esto es hacer que los cambios hechos en el GridView se hagan tambien en el origen (en nuestro caso, un Datadet o un DataTable). Asi cada vez que yo hago un cambio en el Gridview, éste sincroniza la información con su fuente y luego vuelve a renovar la grilla mostrando los datos ya modificados. Para hacer esto puedes usar el siguiente código (en este ejemplo el origen es una Datatable) GridView grilla = new GridView(); //grilla que muestra los datos DataTable tabla = new DataTable(); //dataTable que contiene los datos //obtiene los datos de la BD y la almacena en un DataTable tabla = Metodo_para_obtener_datos_de_la_BD(); /* El objeto de la clase Binding Source me permite sincronizar     el gridView con el dataTable.     Asi, cada modificacion que yo haga en el GridView también se hará    en el DataTable */ BindingSource sincronizadorTabla = new BindingSource(); sincronizadorTabla.DataSource = tabla; //Enlaza la tabla sincronizada con el gridView grilla.DataSource = sincronizadorTabla; Con esto todo cambio que hagas en la grilla también se hará en el origen de los datos. Asi, cada vez que quieras actualizar la grilla esta mostrará los últimos cambios que se hicieron. Debo mencionar que hasta este momento no se ha hecho ningún cambio en la Base de datos, sino que sólo en la informacion residente en memoria, por lo que si quieres guardar los cambios hechos solo tienes que sincronizar el DataTable o DataSet con la Base de Datos y listo. Espero que te sirva. Saludos

Pregunta finalizada. Valoración: 3
gracias


Volver al mensaje
http://www.todoexpertos.com/categorias/tecnologia-e-internet/programacion/c-sharp/respuestas/1852333/consulta-eliminar-registro-desde-grilla