No puedo actualizar el DataSet!!!

17/01/2005 - 15:51 por Juan De Leon | Informe spam
Hola, que tal... estoy estancado en un problemilla y me
urge resolverlo lo mas pronto posible.
Tengo una aplicacion web que tiene un DataGrid, que quiero
actualizar. Sin embargo, despues de codificar el evento
UpdateCommand, me da algun error o no logro actualizar la
base. El codigo que tengo ahora es:

string strSql;

TextBox col1;
TextBox col2 = new TextBox();

col1 = (TextBox)e.Item.Cells[1].Controls[0];

dsRegistros.Tables[tabla].Rows[dbgTabla.EditItemIndex][0] col1.Text;

Datos.OleDbCommandBuilder bldActualiza = new
Datos.OleDbCommandBuilder(adaDatos);
adaDatos.UpdateCommand = bldActualiza.GetUpdateCommand();
adaDatos.Update(dsRegistros.Tables[tabla]);
dsRegistros.AcceptChanges();

dbgTabla.EditItemIndex=-1;
dbgTabla.DataBind();

Si lo hago asi, me marca este error:
System.Data.OleDb.OleDbException: La operación debe usar
una consulta actualizable.

Si cambio de lugar la linea del AcceptChanges y lo pongo
antes del Update, asi:

Datos.OleDbCommandBuilder bldActualiza = new
Datos.OleDbCommandBuilder(adaDatos);
dsRegistros.AcceptChanges();
adaDatos.UpdateCommand = bldActualiza.GetUpdateCommand();
adaDatos.Update(dsRegistros.Tables[tabla]);

...no me sale ninguna excepcion y actualiza la vista del
DataGrid por el nuevo dato, pero no lo almacena en la BD.
Intente hacerlo con codigo, sin el sqlcommand builder, pero
surgieron otros errores :S

Gracias por su atencion.
 

Leer las respuestas

#1 Rodrigo Corral [MVP]
17/01/2005 - 19:58 | Informe spam
dsRegistros.AcceptChanges();

Quita esa linea, si la pones le dices al dataset que consolide los cambios y
el dataadapter no vera las filas que han cambiado en el dataset y no mandará
los cambios a la base de datos.


Un saludo
Rodrigo Corral González [MVP]

FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org

Preguntas similares