2016-05-13 16 views
0
Public Class Form1 

    Private Sub btnlogin_Click(sender As Object, e As EventArgs) Handles btnlogin.Click 
     Dim con As New SqlClient.SqlConnection(MYConnection.MYconnectionString) 
     con.Open() 
     Dim dr As SqlClient.SqlDataReader 
     Dim cmd As New SqlClient.SqlCommand("select * from [User] where UserName=" + txtuser.Text + " and UserPass= " + txtpassword.Text + "", con) 
     dr = cmd.ExecuteReader 
     If dr.Read Then 
      MsgBox("Welcome") 
     End If 
     con.Close() 

    End Sub 
End Class 

Das ist mein Code von Anmeldungsformular ist .. wenn ich das Programm und geben Sie Benutzernamen und Passwort ausgeführt wird dies geschehen:Verbindung mit SQL Server

Diese MyConnection.vb ist, dass i verwenden, um zu meiner Datenbank

Public Class MYConnection 

    Public Shared MYconnectionString As String = "Server=CLAIRETUMLOS\SQLEXPRESS;Database=Capstone;Integrated Security=True;" 

End Class 

hier zu verbinden ist mein dbo.User Tisch

+0

Sie fehlen Zecken um die Daten. So etwas passiert nicht mit SQL-Parametern. Ihr Code wird auch nicht auf Namen wie "O'Brien" scheitern. Speichern Sie Kennwörter niemals als Nur-Text. – Plutonix

Antwort

1

Sie sind ein ' für String-Feld fehlt, aber ich rate Ihnen, Parameter zu verwenden, SQL-Injektionen zu vermeiden, wie folgt aus:

Private Sub btnlogin_Click(sender As Object, e As EventArgs) Handles btnlogin.Click 
    Dim con As New SqlClient.SqlConnection(MYConnection.MYconnectionString) 
    con.Open() 
    Dim dr As SqlClient.SqlDataReader 
    Dim cmd As New SqlClient.SqlCommand("select * from [User] where [email protected] and [email protected]", con) 
    cmd.Parameters.AddWithValue("@UserName", txtuser.Text) 
    cmd.Parameters.AddWithValue("@UserPass", txtpassword.Text) 
    dr = cmd.ExecuteReader 
    If dr.Read Then 
     MsgBox("Welcome") 
    End If 
    con.Close() 
End Sub