Insertar en base de datos

08/10/2006 - 22:23 por kdokdo | Informe spam
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.
Antes lo hacía sin todo esto de las transacciones, pero luego pensé
que igual si no le hacía un commit no se guardaba en la base de datos.
Pues bueno, así tampoco. No hay manera de insertar filas en las tablas
de la base de datos.

Alguna idea? Cualquier cosa aunque no tenga nada que ver con mi código
me puede ayudar.
Estoy desesperada!!!

Os dejo el código:

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();
}
 

Leer las respuestas

#1 Alberto Poblacion [MVP]
09/10/2006 - 08:47 | Informe spam
wrote in message
news:
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.



¿No estarás Sql Express con una Instancia de Usuario? A ver si lo que te
pasa es que tienes el .mdf en el directorio del fuente; cuando lo ejecutas
el Visual Studio saca una copia al directorio ejecutable, y la inserción se
produce ahi. Pero luego miras en la copia original y, claro, ahi no se ha
insertado ningún registro.

Aparte de eso, en tu código tienes esto:

SqlCommand command = ordenesTableAdapter.Connection.CreateCommand();
[...]
command.Connection = ordenesTableAdapter.Connection;
command.Transaction = transaction;



No comprendo para qué creas este command si luego no lo usas para nada,
ya que la inserción la realizas llamando al .Insert del TableAdapter. Esto
no tendría por qué impedir que la inserción se realice, pero te lo menciono
porque me ha parecido extraño.

Preguntas similares