public string Actualizar(string sel)
{
// Actualiza los datos indicados
// El parámetro, que es una cadena de selección, indicará el criterio de actualización
//
// En caso de error, devolverá la cadena empezando por ERROR.
OleDbConnection cnn;
OleDbDataAdapter da;
DataTable dt = new DataTable("alumnos");
//
cnn = new OleDbConnection(cadenaConexion); ///////ACA SALE EL ERRORRR
//da = new OleDbDataAdapter(CadenaSelect, cnn);
da = new OleDbDataAdapter(sel, cnn);
da.MissingSchemaAction = MissingSchemaAction.AddWithKey;
//
//-------------------------------------------
// Esta no es la más óptima, pero funcionará
//-------------------------------------------
OleDbCommandBuilder cb = new OleDbCommandBuilder(da);
da.UpdateCommand = cb.GetUpdateCommand();
//
//--------------------------------------------------------------------
// Esta está más optimizada pero debes comprobar que funciona bien...
//--------------------------------------------------------------------
//string sCommand;
////
//// El comando UPDATE
//// TODO: Comprobar cual es el campo de índice principal (sin duplicados)
//// Yo compruebo que sea un campo llamado cod_alumno, pero en tu caso puede ser otro
//// Ese campo, (en mi caso cod_alumno) será el que hay que poner al final junto al WHERE.
//sCommand = "UPDATE alumnos SET apellidos = ?, nombres = ?, curso = ?, Dirección = ?, RH = ? WHERE (cod_alumno = ?)";
//da.UpdateCommand = new OleDbCommand(sCommand, cnn);
//da.UpdateCommand.Parameters.Add("@p1", OleDbType.VarWChar, 50, "apellidos");
//da.UpdateCommand.Parameters.Add("@p2", OleDbType.VarWChar, 50, "nombres");
//da.UpdateCommand.Parameters.Add("@p3", OleDbType.VarWChar, 30, "curso");
//da.UpdateCommand.Parameters.Add("@p4", OleDbType.VarWChar, 50, "Dirección");
//da.UpdateCommand.Parameters.Add("@p5", OleDbType.VarWChar, 255, "RH");
//da.UpdateCommand.Parameters.Add("@p6", OleDbType.VarWChar, 255, "cod_alumno");
//da.UpdateCommand.Parameters.Add("@p7", OleDbType.Integer, 0, "");
//
try
{
da.Fill(dt);
}
catch (Exception ex)
{
return "ERROR: " + ex.Message;
}
//
this._cod_alumno = (dt.Rows.Count + 1).ToString();
if (dt.Rows.Count == 0)
{
// crear uno nuevo
return Crear();
}
else
{
alumnos2Row(this, dt.Rows[0]);
}
//
try
{
da.Update(dt);
dt.AcceptChanges();
return "Actualizado correctamente";
}
catch (Exception ex)
{
return "ERROR: " + ex.Message;
}
}