CLR: .Net / Mono / Boo / Otros CLR > C#
Inserción En Base De Datos
(1/1)
enkara:
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:
Es probable que debas hacer commit a la base de datos antes de cerrar la aplicacion.
enkara:
Pero el commit solo es para transacciones no?
Tendría que haber otra forma de ahcerlo.
Lo voy a probar =mente.
Muchas gracias!
JuanK:
: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.
enkara:
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 --- foreach (DataGridViewRow dgvr in ordenesDataGridView.Rows){ SqlCommand command = ordenesTableAdapter.Connection.CreateCommand(); SqlTransaction transaction; ordenesTableAdapter.Connection.Open(); transaction = ordenesTableAdapter.Connection.BeginTransaction(); command.Connection = ordenesTableAdapter.Connection; command.Transaction = transaction; try { this.ordenesTableAdapter.Insert(1, "Calibrar"); transaction.Commit(); MessageBox.Show("Insert OK"); } catch (Exception ex) { MessageBox.Show("Fallo en la transacción."); try { transaction.Rollback(); } catch (Exception ex2) { MessageBox.Show("Fallo en rollback"); } } ordenesTableAdapter.Connection.Close();}
Navegación
Ir a la versión completa