c# - SqlException was unhandled, incorrect syntax -


i have following problem when performing query on sqlserver management:

an unhandled exception of type ' system.data.sqlclient.sqlexception ' occurred in system.data.dll

additional information : incorrect syntax near ' u' .

the code follows:


public static alumno obtenerusuario(string usuarionumero)         {             //long id_int;             //id_int = convert.toint64(pid);             using (sqlconnection conexion = bdcomun.obtnerconexion())             {                  alumno pal = new alumno();                 sqlcommand comando = new sqlcommand(string.format("select id, nombre, apellido, usuario, cargo, celular, rfid, fecha_nac, estado, check_acceso, empresa_contratista alumnos id={0}", usuarionumero), conexion);                  sqldatareader reader = comando.executereader();                  while (reader.read())                 {                     pal.nombre = reader.getstring(1);                     pal.apellido = reader.getstring(2);                     pal.usuario = reader.getstring(3);                     pal.cargo = reader.getstring(4);                     pal.celular = reader.getstring(5);                     //pal.rfid = reader.getstring(6);                     pal.fecha_nac = reader.getstring(7);                     pal.estado = reader.getstring(8);                     pal.check_acceso = reader.getstring(9);                     pal.empresa_contratista = reader.getstring(10);                 }                 conexion.close();                 return pal;              }         } 

the function: public static alumno obtenerusuario(string usuarionumero) comes from:

public static alumno obtenerusuario(string prfid)        {            int dato_numerico;            int informacion_de_estado_2 = 0;            while (prfid.contains(""))            {                prfid = "123456789012";             }            while (prfid.contains(""))            {                prfid = "123456789012";            }            while (prfid.contains("~"))            {                prfid = "123456789012";                  informacion_de_estado_2 = 1; // 1 = acceso denegado 0 = acceso permitido para el registro            }            while (prfid.contains("¢")) //¢            {                prfid = "123456789012";                  informacion_de_estado_2 = 1; // 1 = acceso denegado 0 = acceso permitido para el registro            }                 using (sqlconnection conexion = bdcomun.obtnerconexion())                {                     alumno palumno = new alumno();                      sqlcommand comando = new sqlcommand(string.format(                        "select id, nombre,  apellido, usuario, cargo, celular, rfid, fecha_nac, empresa_contratista alumnos rfid = {0}", prfid), conexion);                     ////try                    ////{                        sqldatareader reader = comando.executereader();                     //}                    //catch (exception exp)                    //{                    //    //  messagebox.show("por favor inicia registros para habilitar el control.", "iniciar registros", messageboxbuttons.ok, messageboxicon.information);                    //}                     while (reader.read())                    {                        palumno.id = reader.getstring(0);                        palumno.nombre = reader.getstring(1);                        palumno.apellido = reader.getstring(2);                        palumno.usuario = reader.getstring(3);                        palumno.cargo = reader.getstring(4);                        palumno.celular = reader.getstring(5);                        palumno.rfid = reader.getstring(6);                        palumno.fecha_nac = reader.getstring(7);                        palumno.empresa_contratista = reader.getstring(8);                        // palumno.fecha_nac = convert.tostring(reader.getdatetime(7));                     }                     conexion.close();                    return palumno;                 }              } 

how can resolve problem?

appending parameters directly command text bad practice, make vulnurable sql injection. can add variable usuarionumero parameter this

sqlcommand comando = new sqlcommand("select id, nombre, apellido, usuario, cargo, celular, rfid, fecha_nac, estado, check_acceso, empresa_contratista alumnos id=@id"); cmd.parameters.addwithvalue("@id", usuarionumero );  

this should solve problem escaping special characters inside usuarionumero in resulting sql


Comments

Popular posts from this blog

c++ - Difference between pre and post decrement in recursive function argument -

php - Nothing but 'run(); ' when browsing to my local project, how do I fix this? -

php - How can I echo out this array? -