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

Consulta que funciona bien sin parametros, pero mal con ellos

Estas en el tema de Consulta que funciona bien sin parametros, pero mal con ellos en el foro de .NET en Foros del Web. Bien, el tema es que tengo esta consulta a la que le paso unos valores específicos que sé que existen, para @Nombre y @Direccion Código: ...
  #1 (permalink)  
Antiguo 22/03/2006, 10:12
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 4 meses
Puntos: 9
Consulta que funciona bien sin parametros, pero mal con ellos

Bien, el tema es que tengo esta consulta a la que le paso unos valores específicos que sé que existen, para @Nombre y @Direccion
Código:
Dim cMSelect As New OleDbCommand("SELECT * FROM Clientes WHERE Apellidos + ' ' + Nombre = @Nombre AND Direccion = @Direccion", cN)
cMSelect.Parameters.Add("@Direccion", Direccion)
cMSelect.Parameters.Add("@Nombre", Nombre)
Y no detecta registros, pero si que existe el registro.
En cambio, le pongo esta consulta (que es lo mismo, vamos como yo lo veo), y si que me devuelve el registro.
Código:
Dim cMSelect As New OleDbCommand("SELECT * FROM Clientes WHERE Apellidos + ' ' + Nombre = '" & Nombre & "' AND Direccion = '" & Direccion & "'", cN)
Alguin me puede explicar la diferencia? Es que tengo que especificar algo concreto a los parámetros? A falta de solución... qué se les ocurre que pueda comprobar?
Gracias!
__________________
..:: moNTeZIon ::..
  #2 (permalink)  
Antiguo 22/03/2006, 17:14
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Si es una Bd tipo oledb debería quedar algo así tu code: (para una mejor referencia)


Dim cMSelect As New OleDbCommand("SELECT * FROM Clientes WHERE Apellidos + ' ' + Nombre = ? AND Direccion = ?", cN)

Cita:
Dim param1 as New
System.Data.OleDb.OleDbParameter("Direccion",Syste m.Data.OleDb.OleDbType.VarChar,100)
param1.Value = Direccion
cMSelect.Parameters.Add(param1)

Dim param2 as New
System.Data.OleDb.OleDbParameter("Nombre",System.D ata.OleDb.OleDbType.VarChar,50)
param2.Value = Nombre
cMSelect.Parameters.Add(param2)
Checalo y nos cuentas que tal te fue.

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #3 (permalink)  
Antiguo 23/03/2006, 02:40
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 4 meses
Puntos: 9
Genial RootK Funcionó perfecto. De hecho, solo cambié los @Nombre por ? y ya funcionó..

Pero al no usar los nombres de los parámetros en la consulta, parece que hay que agregar los parámetros en el orden que los utilizas en la consulta, supongo...
__________________
..:: moNTeZIon ::..
  #4 (permalink)  
Antiguo 23/03/2006, 12:48
Avatar de .seb  
Fecha de Ingreso: marzo-2006
Ubicación: Uruguay
Mensajes: 493
Antigüedad: 18 años, 1 mes
Puntos: 1
supones correctamente ;)
__________________
saludos
seba
http://sgomez.blogspot.com
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 09:40.