【发布时间】:2020-09-15 01:24:37
【问题描述】:
目前我正在尝试创建一个登录系统,用户注册该程序并在那里创建自己的用户名和密码,然后此用户名和密码将保存在 SQL 数据库中,这部分工作正常,但是,他们使用此用户名和密码登录系统的部分不起作用,我正在尝试做的是检查文本框中的用户名是否与数据库中的用户名之一相同这里是代码和感谢您的支持。
Imports System
Imports System.Data
Imports System.Data.OleDb
Imports System.Data.SqlClient
Imports System.Windows.Forms
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Drawing
Imports System.Linq
Imports System.Text
Imports System.Threading.Tasks
Public Class Form1
Dim Array(100)
Private Sub BtnSignUp_Click(sender As Object, e As EventArgs) Handles BtnSignUp.Click
Dim con As SqlConnection
Dim Insert As SqlCommand
con = New SqlConnection("Data Source=DESKTOP-4U5G5M4;Initial Catalog=Profile;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False")
con.Open()
Insert = New SqlCommand("INSERT INTO EmployeeProfile (item_title) VALUES('" + TxtFirst.Text + "')", con)
Insert.ExecuteNonQuery()
con.Close()
End Sub
Private Sub BtnLoginSQL_Click(sender As Object, e As EventArgs) Handles BtnLoginSQL.Click
Dim Correct As Boolean = False
Dim Pass As Boolean = False
Dim Slc As New SqlCommand("", con)
con.Open()
Slc.CommandText = "SELECT item_title FROM EmployeeProfile"
If Slc.ExecuteScalar = TxtUsername.Text Then
Correct = True
End If
If Correct = True And TxtUsername.Text = Nothing Then
Correct = False
End If
If Correct = True Then
PnlPersonInfo.Visible = False
PnlLogin.Visible = False
PnlHome.Visible = True
End If
con.Close()
End Sub
【问题讨论】:
-
您通过调试解决了此类问题...我们无法阅读您的代码并轻松发现问题所在。但是你可以单步调试一个调试器并很容易地捕捉到它崩溃的地方。如果您仍然遇到困难,请发布其他信息,也许有人可以提供帮助。
-
您在这篇文章中倾倒了太多代码。您有不完整的方法、注释代码以及大量与您的问题无关的代码。请参阅How to Ask 和minimal reproducible example,并将代码减少到演示问题所需的绝对最小值。
-
您的选择 SQL 无效...并且应该使用参数,并且您的连接应该在 using 块内(假设 VB 有这些)。你是根据用户名选择的,没有密码?大安全漏洞。
-
这个
Slc.CommandText = ("SELECT * FROM EmployeeProfile (item_title) VALUES (" + TxtUsername.Text + ")")是一个无效的选择语句 -
哎呀,这看起来很可怕——容易受到 sql 注入问题的影响。
标签: sql sql-server vb.net