VB.NET与数据库交互的登录表单实现

使用了VB.NETLINQ和SQL。使用的是Visual Studio 2008和安装了全文搜索功能的Microsoft SQL Server 2008 Express Edition,运行在Windows XP Professional SP3上。不知道这些信息是否有帮助,但还是想告诉所使用的平台。

代码使用说明

以下代码是登录表单的背景代码。该表单通过LINQ调用SQL数据库。主要调用的表是"users",主要查询的列是"UserName"、"PssWrd"和"UserActive"。可以随意命名这些列。"username"和"password"列是nvchar(25)类型,而"useractive"列是nvchar(5)类型。选择nvchar(5)类型是因为喜欢使用布尔逻辑,并且不知道如何在SQL中创建一个表示是或否的列,所以就在用户的数据表中放入"true"或"false"。

VB.NET代码实现

下面的代码是登录按钮点击事件的处理程序,它调用Check_Details子程序来验证用户凭证。

Public Class Login Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click Me.Check_Details() End Sub Private Sub Cancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel.Click Me.Close() End Sub Private Sub Login_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Try Me.UsersTableAdapter.FillBy(Me.SecurityDataSet1.Users) Catch ex As System.Exception System.Windows.Forms.MessageBox.Show(ex.Message) End Try End Sub Private Sub Check_Details() Dim UName As String = Me.UserNameBox.Text.ToString.Trim Dim PWord As String = Me.PassWordBox.Text.ToString.Trim Dim sd As New SecurityDataSetTableAdapters.UsersTableAdapter Dim query = From check In sd.GetData _ Select check.LogonName, check.PssWrd, check.UserActive _ Where LogonName = UName AndAlso PssWrd = PWord AndAlso UserActive = "True" If query.Count() = 1 Then MessageBox.Show("confirmed") Else MessageBox.Show("Password Is Incorrect or no longer Valid", "Password Problem") End If End Sub Private Sub unmaskpw_CheckedChanged_(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles unmaskpw.CheckedChanged If unmaskpw.Checked = True Then Me.PassWordBox.PasswordChar = "" Else Me.PassWordBox.PasswordChar = "*" End If End Sub End Class

这段代码检查输入的用户凭证是否正确。声明将表单框中的文本转换为字符串值,以便与LINQSQL查询一起使用。第二组声明将表适配器序列转换为简短的字符串名称,以便在SQL查询中使用。查询检查输入的用户名和密码是否匹配。它还验证当前用户是激活还是未激活状态。IF命令执行SQL查询,并告诉它计算有多少回复。如果计数不产生1(它应该产生的),它将转到IF命令的第二部分。如果结果是积极的,IF命令将运行其下的任何命令。

密码显示/隐藏功能

在表单上有一个复选框,用于打开/关闭密码掩码。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485