Hola, estoy haciendo una pequeña aplicación en Visual Basic. Necesito recuperar datos de una base de datos, y me gustaría hacerlo por parámetros, para evitar problemas con la entrada de datos del usuario.
Bien, si lo hago así, sin parametros funciona correctamente:
Dim str As String = "SELECT * FROM Clientes WHERE Cif = '" & cifCliente & "'"
Dim cmd As OleDbCommand = New OleDbCommand(str, myConnection)
dr = cmd.ExecuteReader
dr.Read()
MessageBox.Show(dr("CodigoInterno").ToString())
Ejecutando esto me muestra el código interno del cliente con el cif indicado. Pero como digo, es inseguro, así que lo estoy intentando hacer con parámetros. Este es el código:
Dim str As String = "SELECT * FROM Clientes WHERE Cif = '@cifCliente'"
Dim cmd As OleDbCommand = New OleDbCommand(str, myConnection)
cmd.Parameters.AddWithValue("@cifCliente", cifCliente)
dr = cmd.ExecuteReader
dr.Read()
MessageBox.Show(dr("CodigoInterno").ToString())
Y si hago esto, pues ya no devuelve nada. Concretamente, me da una excepción por falta de datos.
¿Qué es lo que está mal en el segundo código? ¿No se hace de esta forma?
Gracias