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

[SOLUCIONADO] Problema con select y datatable

Estas en el tema de Problema con select y datatable en el foro de .NET en Foros del Web. Que tal amigos. Veréis, estoy haciendo un select con parametros y tengo problemas a la hora de mostrar los datos. Si lo hago en SQL ...
  #1 (permalink)  
Antiguo 01/12/2013, 16:20
 
Fecha de Ingreso: marzo-2010
Mensajes: 191
Antigüedad: 14 años, 8 meses
Puntos: 3
Pregunta Problema con select y datatable

Que tal amigos.

Veréis, estoy haciendo un select con parametros y tengo problemas a la hora de mostrar los datos.

Si lo hago en SQL Server no hay problema, me devuelve el curso 12345 y los datos del mismo.

Código SQL:
Ver original
  1. SELECT * FROM curso WHERE CursoID LIKE '%123%'

En cambio, cuando la hago desde .net (con Visual Basic) me indica que no hay resultado.

La paso con parametros (y el parametro código puede ser tanto 123 como 12345 (que es el código del curso).

Código VBNET:
Ver original
  1. Dim dt As DataTable = Nothing
  2. Dim sql As String = "select * from curso where cursoID like '%@codigo%'"
  3. Dim cmd As New SqlCommand(sql, conn)
  4.  
  5. 'introducimos el parametro
  6. cmd.Parameters.AddWithValue("@codigo", codigo)
  7.  
  8. Dim reader As SqlDataReader = cmd.ExecuteReader
  9. dt = New DataTable
  10. dt.Load(reader)

Sin embargo, el Datatable está vacio

La sintaxis entiendo que está bien.

Saludos :)
  #2 (permalink)  
Antiguo 01/12/2013, 16:28
 
Fecha de Ingreso: marzo-2010
Mensajes: 191
Antigüedad: 14 años, 8 meses
Puntos: 3
Respuesta: Problema con select y datatable

Nada solucionado.

Para los que le sucedan lo mismo, comentar que cuando es un like no es posible enviar la consulta con parametros, sino que se tienen que pasar de forma explicita utilizando el &.

En mi caso, el resultado sería tal que así

Código VBNET:
Ver original
  1. Dim dt As DataTable = Nothing
  2. Dim sql As String = "select * from curso where cursoID like '%" & codigocurso & "%'"
  3. Dim cmd As New SqlCommand(sql, conn)
  4.  
  5. Dim reader As SqlDataReader = cmd.ExecuteReader
  6. dt = New DataTable
  7. dt.Load(reader)

Etiquetas: datatable, server, sql
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 05:48.