• Lunes 23 de Diciembre de 2024, 16:33

Autor Tema:  ERROR de coneccion?  (Leído 1233 veces)

kasq

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
ERROR de coneccion?
« en: Lunes 1 de Diciembre de 2008, 11:10 »
0
estoy trabajando con MS visual estudio 2005 professional edition (SOY UN BEGINNER , pero ahi tropezando algo se aprende)
Comprobar usuario y clave usando una base de datos - Ejemplo para Visual Basic .NET 2003 (.NET 1.1)
le he estado dando tratameinto a este pequeño codigo, una pequeña adaptacion , pero me sale un error el cual enumero a continuacion: ERROR al conectar a la base de datos: sintaxis incorrecta cerca de '='.
aqui esta mi codigo , lo que he podido transformar ahi
Código: Text
  1. Imports System.Data
  2. Imports System.Data.SqlClient
  3. Public Class frmInicio
  4.     Private veces As Integer = 0
  5.     Private Const numeroIntentos As Integer = 3
  6.     Private cadenaCnn As String = "Data Source = KELINONESQLEXPRESS; Initial Catalog = Usuarios; Integrated Security=True"
  7.  
  8.     Private Sub btnACEPTAR_Click( _
  9.     ByVal sender As System.Object, _
  10.     ByVal e As System.EventArgs) Handles btnACEPTAR.Click
  11.         If comprobarUsuario(Me.txtNICK.Text, Me.txtCLAVE.Text) Then
  12.             'If txtCLAVE.Text = "123" Then
  13.             Me.DialogResult = Windows.Forms.DialogResult.OK
  14.         Else
  15.             veces = veces + 1
  16.             If veces < numeroIntentos Then
  17.                 Label3.Text = "Quedan" & (numeroIntentos - veces) & "Intentos"
  18.                 Exit Sub
  19.             End If
  20.             Me.DialogResult = Windows.Forms.DialogResult.No
  21.         End If
  22.         Hide()
  23.     End Sub
  24.     Private Sub btnSALIR_Click _
  25.     (ByVal sender As System.Object, _
  26.     ByVal e As System.EventArgs) Handles btnSALIR.Click
  27.         Me.DialogResult = Windows.Forms.DialogResult.Cancel
  28.         Hide()
  29.     End Sub
  30.  
  31.     Private Function comprobarUsuario( _
  32.             ByVal IDUsuario As String, _
  33.             ByVal IDContraseña As String) As Boolean
  34.         Dim cnn As SqlConnection = Nothing
  35.  
  36.         Try
  37.             cnn = New SqlClient.SqlConnection(cadenaCnn)
  38.             cnn.Open()
  39.  
  40.             Dim sel As New System.Text.StringBuilder
  41.             sel.Append("SELECT COUNT (*) FROM Usuarios")
  42.             sel.Append("WHERE IdUsuario = @IDUsuario AND  IDContraseña= @IDContraseña")
  43.  
  44.             Dim cmd As New SqlClient.SqlCommand(sel.ToString, cnn)
  45.             cmd.Parameters.Add("@IDUsuario", SqlDbType.NVarChar, 50)
  46.             cmd.Parameters.Add("@IDContraseña", SqlDbType.NVarChar, 40)
  47.  
  48.             cmd.Parameters("@IDUsuario").Value = IDUsuario
  49.             cmd.Parameters("@IDContraseña").Value = IDContraseña
  50.  
  51.             Dim t As Integer = CInt(cmd.ExecuteScalar)
  52.             cnn.Close()
  53.             If t = 0 Then
  54.                 Return False
  55.             End If
  56.         Catch ex As Exception
  57.             MessageBox.Show("ERROR al conectar a la base de datos: " & vbCrLf & _
  58.                     ex.Message, "Comprobar usuario", MessageBoxButtons.OK, _
  59.                     MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1)
  60.             Return False
  61.         Finally
  62.             If Not cnn Is Nothing Then
  63.                 cnn.Dispose()
  64.             End If
  65.         End Try
  66.         Return True
  67.     End Function
  68.     Private Sub frmInicio_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  69.  
  70.     End Sub
  71. End Class
  72.  

capas y el error es algo sencillo pero ya no puedo sabe r que es , e intentado algunas cosas pero es inutil, NO ME VENDRIA MAL UN POCO DE EAMYPUJDNAES
de antemano gracias por sus repsuetsas...

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: ERROR de coneccion?
« Respuesta #1 en: Lunes 1 de Diciembre de 2008, 18:19 »
0
El error que veo es que no dejas espacio al concatenar las cadenas por lo tanto tu cadena SQL queda:

Código: SQL
  1.  
  2. SELECT COUNT (*) FROM UsuariosWHERE IdUsuario = @IDUsuario AND  IDContraseña= @IDContraseña
  3.  
  4.  

Cuando deberia ser:
Código: SQL
  1.  
  2. SELECT COUNT (*) FROM Usuarios WHERE IdUsuario = @IDUsuario AND  IDContraseña= @IDContraseña GROPY BY IdUsuario
  3.  
  4.  

La solucion seria dejar un espacio al final de la primera cadena, para que al concatenar, no queden 2 palabras juntas:

Código: Text
  1.  
  2.             sel.Append("SELECT COUNT (*) FROM Usuarios ")
  3.             sel.Append("WHERE IdUsuario = @IDUsuario AND  IDContraseña= @IDContraseña")
  4.  
  5.  

Ademas, trata de usar el depurador de VS y el visor de variables, para verificar el contenido de tus variables.

Saludos :hola:

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

kasq

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
ERA ERROR
« Respuesta #2 en: Lunes 1 de Diciembre de 2008, 23:00 »
0
MUCHAS POR SU RESPUESTA Sr.

MUY BUENA EXPLICACION Y DETALLES LE ANTECEDEN A LA REPSUESTA.

ME AYUDO A COMPRENDER D EMANERA AMPLIa ESTE PEQUEÑO ERROR OK.
espero siempre contar con su ayuda. sino es molestia

THANK YOU Sr.
Código: Text
  1. ProfsorX
  2.