Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   oleDbParameters (http://www.forosdelweb.com/f29/oledbparameters-411640/)

Legolas_Bilbao 24/07/2006 03:37

oleDbParameters
 
quiero pasarle un parametro para evitar el sql injection
Código:

OleDbParameter @_usuario = new OleDbParameter("@_usuario",OleDbType.VarChar,50);
                                  //myDataAdapter.SelectCommand.Parameters.Add("@CategoryName", OleDbType.VarChar, 80).Value = "toasters";

                        string commandText = "SELECT id_usuario,id_pass FROM _usuariosBallestaParis "+
                                "WHERE id_usuario=@_usuario";
                        OleDbCommand cmd = new OleDbCommand(commandText, this.conn);
                        cmd.Parameters.Add("@_usuario",id_izena);
                        OleDbDataReader reader = cmd.ExecuteReader();


pero siempre me salta exception de que tengo que declarar @_usuario

como puedo solventar este problema

RootK 24/07/2006 08:25

ya lo intentaste así:

Cita:

OleDbParameter @_usuario = new OleDbParameter("@_usuario",OleDbType.VarChar,50);
@_usuario.Value = id_izena;

string commandText = "SELECT id_usuario,id_pass FROM _usuariosBallestaParis "+ "WHERE id_usuario=@_usuario";
OleDbCommand cmd = new OleDbCommand(commandText, this.conn);
cmd.Parameters.Add(@_usuario);
OleDbDataReader reader = cmd.ExecuteReader();
Salu2

Legolas_Bilbao 25/07/2006 01:45

no ahora lo pruebo gracias

Legolas_Bilbao 26/07/2006 01:02

Me sigue saliendo lo mismo:molesto: :molesto: y he copiado tal cual lo que me has puesot :S , q estaré haciend mal :S

moNTeZIon 27/07/2006 08:49

Hola Legolas,
Dos cosas:
1) La documentación de ADO.NET para OleDB dice que los parámetros se marcan con "?" y no con "@NombreParametro"
O sea, una sentencia INSERT INTO, podria quedarte así:
Código:

INSERT INTO tabla (Campo1, Campo2) VALUES (?, ?)
Luego, tendrás que tener en cuenta el orden en que le agregas parámetros, ya que estos no tienen nombre en la CommandText.

2) Y luego, yo programo en VB y no se si en C# ocurre lo mismo, pero yo no puedo declarar una variable que su nombre empiece por "@". Me marca error. Prueba a cambiar el nombre de la variable parámetro, quitandole la @, a ver qué tal. O sea, prueba algo así:
Código:

OleDbParameter ParamUsuario = new OleDbParameter("@_usuario",OleDbType.VarChar,50);
@_usuario.Value = id_izena;

Checa todo esto y ya dirás.
Un saludo!

Legolas_Bilbao 27/07/2006 11:34

Solucionado muchas gracias


La zona horaria es GMT -6. Ahora son las 10:52.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.