Foros del Web » Programación para mayores de 30 ;) » .NET »

oleDbParameters

Estas en el tema de oleDbParameters en el foro de .NET en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 24/07/2006, 03:37
 
Fecha de Ingreso: mayo-2005
Mensajes: 423
Antigüedad: 19 años, 8 meses
Puntos: 1
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
__________________
Dios creo un equipo perfecto a los demas los lleno de extranjeros
  #2 (permalink)  
Antiguo 24/07/2006, 08:25
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 23 años
Puntos: 50
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
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #3 (permalink)  
Antiguo 25/07/2006, 01:45
 
Fecha de Ingreso: mayo-2005
Mensajes: 423
Antigüedad: 19 años, 8 meses
Puntos: 1
no ahora lo pruebo gracias
__________________
Dios creo un equipo perfecto a los demas los lleno de extranjeros
  #4 (permalink)  
Antiguo 26/07/2006, 01:02
 
Fecha de Ingreso: mayo-2005
Mensajes: 423
Antigüedad: 19 años, 8 meses
Puntos: 1
Me sigue saliendo lo mismo y he copiado tal cual lo que me has puesot :S , q estaré haciend mal :S
__________________
Dios creo un equipo perfecto a los demas los lleno de extranjeros
  #5 (permalink)  
Antiguo 27/07/2006, 08:49
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 20 años, 1 mes
Puntos: 9
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!
__________________
..:: moNTeZIon ::..
  #6 (permalink)  
Antiguo 27/07/2006, 11:34
 
Fecha de Ingreso: mayo-2005
Mensajes: 423
Antigüedad: 19 años, 8 meses
Puntos: 1
Solucionado muchas gracias
__________________
Dios creo un equipo perfecto a los demas los lleno de extranjeros
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:35.