• Viernes 1 de Noviembre de 2024, 04:44

Autor Tema:  Error Al Actualizar Una Db  (Leído 894 veces)

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Error Al Actualizar Una Db
« en: Miércoles 29 de Agosto de 2007, 23:45 »
0
Hola amigos míos.

Estuve haciendo algunas pruebas en C# conectándome a diferentes bases de datos, leyendo datos, modificando y actualizando. Venía bien hasta hoy, día en el que se me ocurrió hacer algunas pruebas con Access.

Me conecto, pude leer mediante un OleDbDataAdapter, por medio de este llené un DataTable.
Lleno un DataGridView por medio de un BindingSource.
Código: Text
  1. this.Grilla.DataSource = bindDatos;
  2.  
Código: Text
  1. public void select(string sql, ref BindingSource bindDatos)
  2.         {
  3.             OleDbCommand comandoSelect = new OleDbCommand(sql, claseConexion.conexion);
  4.             adaptador = new OleDbDataAdapter(comandoSelect);
  5.             OleDbCommandBuilder commandBuilder = new OleDbCommandBuilder(adaptador);
  6.             DataTable tabla = new DataTable();
  7.             adaptador.Fill(tabla);
  8.             bindDatos.DataSource = tabla;
  9.         }
  10.  
y actualizo la DB
Código: Text
  1. public void guardarCambios(ref BindingSource bindDatos)
  2.         {
  3.             try
  4.             {
  5.                 adaptador.Update((DataTable)bindDatos.DataSource);
  6.             }
  7.             catch (OleDbException exception)
  8.             {
  9.                 int i = 0;
  10.                 MessageBox.Show("Index #" + i + "\n" +
  11.                 "Message: " + exception.Errors[i].Message + "\n" +
  12.                 "Native: " + exception.Errors[i].NativeError.ToString() + "\n" +
  13.                 "Source: " + exception.Errors[i].Source + "\n" +
  14.                 "SQL: " + exception.Errors[i].SQLState + "\n");
  15.             }
  16.         }
  17.  
Todo esto venía funcionando bien hasta que agregué a la DB un campo del tipo "Si/No", cuando modifico alguno de estos campos en algún registro e intento actualizar, salta la siguiente excepción:

Si modifico cualquier otro dato sin tocar esa columna puedo actualizar sin problemas.

Creo haber entendido de algo que leí por ahí que en vez de utilizar esta línea
Código: Text
  1. OleDbCommandBuilder commandBuilder = new OleDbCommandBuilder(adaptador);
  2.  
Puedo especificar manualmente las sentencias sql ¿Esto es así? ¿Puede venir por ahí la solución?

Gracias :beer:
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.