Bases de Datos > SQL Server

 ERROR de coneccion?

(1/1)

kasq:
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 ---Imports System.DataImports System.Data.SqlClientPublic Class frmInicio    Private veces As Integer = 0    Private Const numeroIntentos As Integer = 3    Private cadenaCnn As String = "Data Source = KELINONESQLEXPRESS; Initial Catalog = Usuarios; Integrated Security=True"     Private Sub btnACEPTAR_Click( _    ByVal sender As System.Object, _    ByVal e As System.EventArgs) Handles btnACEPTAR.Click        If comprobarUsuario(Me.txtNICK.Text, Me.txtCLAVE.Text) Then            'If txtCLAVE.Text = "123" Then            Me.DialogResult = Windows.Forms.DialogResult.OK        Else            veces = veces + 1            If veces < numeroIntentos Then                Label3.Text = "Quedan" & (numeroIntentos - veces) & "Intentos"                Exit Sub            End If            Me.DialogResult = Windows.Forms.DialogResult.No        End If        Hide()    End Sub    Private Sub btnSALIR_Click _    (ByVal sender As System.Object, _    ByVal e As System.EventArgs) Handles btnSALIR.Click        Me.DialogResult = Windows.Forms.DialogResult.Cancel        Hide()    End Sub     Private Function comprobarUsuario( _            ByVal IDUsuario As String, _            ByVal IDContraseña As String) As Boolean        Dim cnn As SqlConnection = Nothing         Try            cnn = New SqlClient.SqlConnection(cadenaCnn)            cnn.Open()             Dim sel As New System.Text.StringBuilder            sel.Append("SELECT COUNT (*) FROM Usuarios")            sel.Append("WHERE IdUsuario = @IDUsuario AND  IDContraseña= @IDContraseña")             Dim cmd As New SqlClient.SqlCommand(sel.ToString, cnn)            cmd.Parameters.Add("@IDUsuario", SqlDbType.NVarChar, 50)            cmd.Parameters.Add("@IDContraseña", SqlDbType.NVarChar, 40)             cmd.Parameters("@IDUsuario").Value = IDUsuario            cmd.Parameters("@IDContraseña").Value = IDContraseña             Dim t As Integer = CInt(cmd.ExecuteScalar)            cnn.Close()            If t = 0 Then                Return False            End If        Catch ex As Exception            MessageBox.Show("ERROR al conectar a la base de datos: " & vbCrLf & _                    ex.Message, "Comprobar usuario", MessageBoxButtons.OK, _                    MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1)            Return False        Finally            If Not cnn Is Nothing Then                cnn.Dispose()            End If        End Try        Return True    End Function    Private Sub frmInicio_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load     End SubEnd Class 
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:
El error que veo es que no dejas espacio al concatenar las cadenas por lo tanto tu cadena SQL queda:


--- Código: SQL --- SELECT COUNT (*) FROM UsuariosWHERE IdUsuario = @IDUsuario AND  IDContraseña= @IDContraseña  
Cuando deberia ser:

--- Código: SQL --- SELECT COUNT (*) FROM Usuarios WHERE IdUsuario = @IDUsuario AND  IDContraseña= @IDContraseña GROPY BY IdUsuario  
La solucion seria dejar un espacio al final de la primera cadena, para que al concatenar, no queden 2 palabras juntas:


--- Código: Text ---             sel.Append("SELECT COUNT (*) FROM Usuarios ")            sel.Append("WHERE IdUsuario = @IDUsuario AND  IDContraseña= @IDContraseña")  
Ademas, trata de usar el depurador de VS y el visor de variables, para verificar el contenido de tus variables.

Saludos :hola:

kasq:
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 ---ProfsorX 

Navegación

[0] Índice de Mensajes

Ir a la versión completa