Visual Basic.NET - Error de sintaxis, falta operador

 
Vista:

Error de sintaxis, falta operador

Publicado por Fco. Javier Medrano Salez (79 intervenciones) el 10/10/2016 19:16:13
hola a todos, amigos:
haber si alguien me dice cual es el error de sintaxis en esta consulta de visual basic 2010 con acces 2013.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub lvwDatos_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lvwDatos.SelectedIndexChanged
	Dim index = lvwDatos.FocusedItem.Index
	Label1.Text = lvwDatos.Items(index).Text
	conectaalumnos()  ''' esto esta en un módulo y conecta la base de datos perfectamente.
	Dim cadenasql As String = ("SELECT * FROM alumnos WHERE nombre = " + Label1.Text)
	Dim adaptador As New OleDbDataAdapter(cadenasql, conexion)
	Dim Ds As New DataSet
	adaptador.Fill(Ds)   'aqui señala el error de sintaxis (falta operador) en la exp de consulta
	conexion.Close()
	If (Ds.Tables(0).Rows.Count = 0) Then
		'No hay ningún registro
		MsgBox("No existe este alumno en la Base de Datos")
	Else
		MsgBox("Encontré a " & Ds.Tables(0).Rows(0)("nombre").ToString())
		Ds.Dispose()
	End If
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 984
Plata
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Error de sintaxis, falta operador

Publicado por Miguel (476 intervenciones) el 10/10/2016 19:57:07
Bien, pues como bien mencionas el error se encuentra en la consulta; te faltan las comillas luego de la cláusula 'WHERE' (antes y después de Label1.Text) para indicar que se trata de una cadena (aunque ésta no es la manera correcta, ya que se pueden hacer inyecciones a la db). Y si estás usando nombre como llave primaria o identificador, te sugiero que mejor utilices algún índice numérico (autoincrementable) para evitar problemas en el futuro (por ejemplo tener dos registros con el mismo nombre).

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error de sintaxis, falta operador

Publicado por Fco. Javier Medrano Salez (79 intervenciones) el 10/10/2016 21:07:34
Hola amigos, Miguel no puedo asignar correctamente las comillas:

Dim cadenasql As String = ("SELECT * FROM alumnos WHERE nombre = " + "' Label1.Text '")

de esta manera me toma el nombre "label1.text" y no "Medrano Salez Fco. Javier", que es lo que deseo.

configur{e mi BD para que el campo nombre sea la clave principal, puedo poner la curp del alumno pero casi nadie se sabe este dato para buscarlo por ejemplo, sugieres que ponga número para cada alumno? 1, 2, 3...

Gracias por ayudarme.
Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Javier Antonio
Val: 201
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Error de sintaxis, falta operador

Publicado por Javier Antonio (67 intervenciones) el 11/10/2016 05:05:13
1
Dim cadenasql As String = ("SELECT * FROM alumnos WHERE nombre = ' " + Label1.Text +" ' ")
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Error de sintaxis, falta operador

Publicado por Fco. Javier Medrano Salez (79 intervenciones) el 11/10/2016 21:11:54
Gracias Javier Antonio, funcionó perfectamente quitando los espacios después de la comilla sencilla (apóstrofe).
Saludos y muy agradecido!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar