No sé hacer un UPDATE sobre una DB Access
Publicado por Asran (4 intervenciones) el 27/07/2008 20:29:27
Como el titulo pretende ilustrar, no soy capaz de conseguir hacer un UPDATE. Hago INSERTs y DELETEs sin problemas, pero el UPDATE no me chuta. La idea es que cuando la ID de la fila que quiero introducir coincida con la ID de una fila ya existente (o sea, primary key repetida), en lugar de hacer un insert me haga un update. La excepción la controlo bien y tal y dentro del catch va el siguiente codigo:
OleDbConnection BD = new OleDbConnection();
OleDbCommand orden;
BD.ConnectionString = "path de mi bd";
string strOrden = "Update tabla set COL=@COL where ID=@ID";
orden = new OleDbCommand(strOrden, BD);
orden.Parameters.Add(new OleDbParameter("@ID", OleDbType.VarWChar, 50));
orden.Parameters["@ID"].Value = textBoxID.Text;
orden.Parameters.Add(new OleDbParameter("@COL", OleDbType.VarWChar, 50));
orden.Parameters["@COL"].Value = textBoxCOL.Text;
orden.Connection.Open();
int filasAfectadas = orden.ExecuteNonQuery();
MessageBox.Show(filasAfectadas.ToString());
orden.Connection.Close();
Y no me va. No hay ni excepción ni nada. Simplemente el filasAfectadas es igual a 0 y obviamente en la BD no se ve ningún cambio. En cambio si de la misma forma, en lugar de hacer un UPDATE hago un DELETE cambiando el strOrden por este otro
string strOrden = "Delete from tabla where ID=@ID"
funciona perfectamente.
A alguien se le ocurre a que puede ser debido?
OleDbConnection BD = new OleDbConnection();
OleDbCommand orden;
BD.ConnectionString = "path de mi bd";
string strOrden = "Update tabla set COL=@COL where ID=@ID";
orden = new OleDbCommand(strOrden, BD);
orden.Parameters.Add(new OleDbParameter("@ID", OleDbType.VarWChar, 50));
orden.Parameters["@ID"].Value = textBoxID.Text;
orden.Parameters.Add(new OleDbParameter("@COL", OleDbType.VarWChar, 50));
orden.Parameters["@COL"].Value = textBoxCOL.Text;
orden.Connection.Open();
int filasAfectadas = orden.ExecuteNonQuery();
MessageBox.Show(filasAfectadas.ToString());
orden.Connection.Close();
Y no me va. No hay ni excepción ni nada. Simplemente el filasAfectadas es igual a 0 y obviamente en la BD no se ve ningún cambio. En cambio si de la misma forma, en lugar de hacer un UPDATE hago un DELETE cambiando el strOrden por este otro
string strOrden = "Delete from tabla where ID=@ID"
funciona perfectamente.
A alguien se le ocurre a que puede ser debido?
Valora esta pregunta


0