Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/08/2010, 12:54
Avatar de MouRG
MouRG
 
Fecha de Ingreso: agosto-2010
Mensajes: 1
Antigüedad: 13 años, 8 meses
Puntos: 0
OleDb: Palabras reservadas SQL

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