Ayuda con SQL

13/04/2010 - 02:47 por Joel | Informe spam
Hola, tengo un problema al buscar informacion con un SQL.
Yo estoy usando OLEDB , y tengo el siguiente codigo (en el code behind) :

thekey = CType(Request.QueryString("keyid"), Integer)
' Ahora me conecto y busco la informacion del registro a cambiar
Using cnn As New
OleDbConnection(ConfigurationManager.ConnectionStrings("ConnStr2").ConnectionString)
cnn.Open()
Dim sel As String
sel = "SELECT cedula,nombre,direccion,telefono FROM form1 WHERE keyid'" & thekey & "'"
Dim cmd As New OleDbCommand(sel, cnn)
Dim da As New OleDbDataAdapter(cmd)
Dim tabla As New DataTable
da.Fill(tabla)

Pero me sale el error "Operator/operand type mismatch" en la linea :
da.fill(tabla)

El campo "keyid" es tipo integer.

Como lo puedo solucionar ? la variable "thekey" tambien necesita ser
numerica , para poderla comparar con el campo "keyid" ?

gracias

Joel
 

Leer las respuestas

#1 Leandro Tuttini
13/04/2010 - 18:31 | Informe spam
hola

el problema se soluciona quitando las comilas simples de la consulta
que estas armando

igualmente te recomendaria que uses una tecnica como esta:

Dim thekey As Integer = CInt(Request.QueryString("keyid"))

Using cnn As New
OleDbConnection(ConfigurationManager.ConnectionStrings("ConnStr2").ConnectionString)

Dim sel As String = "SELECT cedula,nombre,direccion,telefono FROM
form1 WHERE keyid= @key"
Dim cmd As New OleDbCommand(sel, cnn)
cmd.Parameters.AddWithValue("@key", thekey)

Dim da As New OleDbDataAdapter(cmd)
Dim tabla As New DataTable
da.Fill(tabla)

End Using



como veras se usan parametros en la consulta, cuando se usa
Parameters.AddWithValue(), asi evitar concatenar string para armar la
consulta

saludos

Preguntas similares