Hola, tengo una duda acerca de una consulta en OleDb. Mi problema es que necesito guardar campos en una base de datos cuyo nombre son palabras reservadas SQL (concretamente 'number' y 'position'). Al ejecutar la actualización salta el error:
"Error de sintaxis en la instrucción UPDATE".
Me paso con anterioridad en Java utilizando JDBC y el error se resolvía poniendo el campo entre \" y \" (update players set \"number\"=...), pero en C# con OleDb no sirve, a ver si sabe como se resuelve aquí ;)
Dejo el código que tengo ahora mismo y SÍ funciona (sin los campos number y position) por si sirve de ayuda:
Código:
public void guardarJugador(Jugador j)
{
try
{
OleDbDataAdapter da = new OleDbDataAdapter("update players set yearsexp="+j.experiencia+", team=" + j.equipo + ", fgpbase=" + j.tc + ", threeptbas=" + j.t3 + ", ftpbase=" + j.tl + ", DNKABILITY=" + j.mate + ", DHARDY=" + j.vigor + ", BLKABILITY=" + j.tapon + ", OREABILITY=" + j.rof +
", DREABILITY=" + j.rdef + ", BALABILITY=" + j.pase + ", OFFABILITY=" + j.ataque + ", DEFABILITY=" + j.defensa + ", SPEED=" + j.velocidad + ", QUICK=" + j.agilidad + ", JUMP=" + j.salto + ", DRIBBLE=" + j.dribbling + ", DSTRENGTH=" + j.fuerza +
", STLABILITY=" + j.robo + ", FATIGUE=" + j.resistencia + ", INSIDESC=" + j.tz + ", hand=" + j.mano + ", name='" + j.apellido + "', fname='" + j.nombre + "' where PLAYERID=" + j.pid, con);
dt = new DataTable();
da.Fill(dt);
MessageBox.Show("Jugador guardado correctamente");
}
catch (Exception e)
{
MessageBox.Show("Error al abrir la base de datos\n" + e.Message);
}
}
Gracias de antemano