• Viernes 1 de Noviembre de 2024, 13:32

Autor Tema:  Inserción En Base De Datos  (Leído 1367 veces)

enkara

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Inserción En Base De Datos
« en: Lunes 2 de Octubre de 2006, 20:33 »
0
Hola, a ver si alguien tiene alguna idea de pq no me funciona el siguiente código.

Resulta que quiero insertar datos en una base de datos.

Trabajo en Visual Studio y tengo un TableAdapter ligado a un Origen de datos.
Este es el código:

this.ordenesTableAdapter.Insert(1, "Calibrar");

En todas partes me dice que basta con hacer esto, pero cuando cierro la aplicación, la base de datos sigue vacía.

Alguna idea?

Muchas gracias!!!

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Inserción En Base De Datos
« Respuesta #1 en: Martes 3 de Octubre de 2006, 14:56 »
0
Es probable que debas hacer commit a la base  de datos antes de cerrar la aplicacion.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

enkara

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Inserción En Base De Datos
« Respuesta #2 en: Martes 3 de Octubre de 2006, 17:55 »
0
Pero el commit solo es para transacciones no?
Tendría que haber otra forma de ahcerlo.

Lo voy a probar =mente.

Muchas gracias!

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Inserción En Base De Datos
« Respuesta #3 en: Martes 3 de Octubre de 2006, 18:08 »
0
:lol:
un insert es una transaccion, toda transaccion requiere commit.

Los adaptadores a evces hacenautocommit por transaccion y aveces requeren que se haga manual y a veces es configurable, revisa.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

enkara

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Inserción En Base De Datos
« Respuesta #4 en: Jueves 5 de Octubre de 2006, 20:39 »
0
Es que a mi me habían enseñado que una transacción eran dos o más operaciones que debían hacerse juntas de manera que si en algún momento fallaba la aplicación, nunca se quedara a medias.

En todo caso, para hacer un commit, requiere que declare una transaction y lo he hecho y no me ha funcionado tmp. Estoy desesperada  :'(

Aquí pego el código por si JuanK o alguien viera algún error (Me sale que hay un fallo en la transacción):

Código: Text
  1.  
  2. foreach (DataGridViewRow dgvr in ordenesDataGridView.Rows)
  3. {
  4.     SqlCommand command = ordenesTableAdapter.Connection.CreateCommand();
  5.     SqlTransaction transaction;
  6.  
  7.     ordenesTableAdapter.Connection.Open();
  8.     transaction = ordenesTableAdapter.Connection.BeginTransaction();
  9.    
  10.     command.Connection = ordenesTableAdapter.Connection;
  11.     command.Transaction = transaction;
  12.  
  13.     try
  14.     {
  15.         this.ordenesTableAdapter.Insert(1, "Calibrar");
  16.         transaction.Commit();
  17.        
  18.         MessageBox.Show("Insert OK");                  
  19.     }
  20.     catch (Exception ex)
  21.     {
  22.         MessageBox.Show("Fallo en la transacción.");
  23.  
  24.         try
  25.         {
  26.             transaction.Rollback();
  27.         }
  28.         catch (Exception ex2)
  29.         {
  30.             MessageBox.Show("Fallo en rollback");
  31.         }
  32.     }
  33.  
  34.     ordenesTableAdapter.Connection.Close();
  35. }
  36.  
  37.