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
Ir a la versión completa