VB编程:实现登录窗口并连接数据库 (vb做一个登录窗口连接数据库)

在现代化的计算机应用程序中,登录是必要的组成部分,因为它确保了用户只能访问其有权访问的区域。在本文中,我们将重点介绍如何通过VB编程实现登录窗口,并连接数据库以验证用户凭据。

之一步:设计登录窗口

要创建登录窗口,您必须首先打开VB环境并在其中创建一个新的Windows窗体应用程序。接下来,您需要在窗体上放置以下控件:

1.标签(Label) – 用于显示登录窗口的标题。

2.文本框(TextBox) – 用户名和密码。

3.按钮(Button) – “登录”按钮,判断用户凭据的有效性。

在窗口设计完成后,您需要为每个控件分配相应的属性,使其有效地实现其应有的功能。例如,您应将”Label”控件的标题设置为”用户登录”。将”TextBox”控件的名称分别设置为”txtUserName”和”txtPassword”。您可以为”Button”控件设置标题为”登录”。

第二步:创建数据库表

接下来,您需要创建一个数据库表以存储用户的凭据信息。在此示例中,我们将使用Microsoft SQL Server Management Studio。在MS SQL Server Management Studio中,右键单击”Tables”节点并选择”New Table”。然后为表添加以下列:

1.用户ID – int – 主键

2.用户名 – varchar(50) – 唯一键

3.密码 – varchar(50)

然后,您可以单击”Save”按钮来保存表并命名为”Users”。在”Users”表中,您将手动添加用户。

第三步:编写VB代码逻辑

接下来,您需要添加VB代码以处理用户登录的逻辑。在VB IDE中,从窗体设计器中双击”登录”按钮以打开代码编辑器。在编辑器中,您需要添加以下代码行:

‘从文本框获取用户名和密码

Dim userName As String = txtUserName.Text

Dim password As String = txtPassword.Text

‘创建SQL查询以从用户表中选择数据

Dim sqlQuery As String = “SELECT * FROM Users WHERE Username = ‘” & userName & “‘”

‘打开数据库连接并执行查询

Using con As New SqlConnection(“Data Source=ServerName;Initial Catalog=DatabaseName;Integrated Security=True”)

Dim cmd As New SqlCommand(sqlQuery, con)

con.Open()

Dim reader As SqlDataReader = cmd.ExecuteReader()

‘如果结果集中有行,则表示用户已注册

If reader.HasRows Then

reader.Read()

‘验证密码

If reader(“Password”).ToString() = password Then

‘密码验证通过,打开主窗体

MsgBox(“Welcome ” & reader(“Username”).ToString())

Else

‘密码验证不通过

MsgBox(“Invalid password”)

End If

Else

‘用户名错误

MsgBox(“Invalid username”)

End If

End Using

这些代码使您能够获取用户输入的用户名和密码。然后,它向数据库发出SELECT查询以查看用户是否已注册。如果结果集中有行,则表示用户已注册。接下来,您需要检查用户输入的密码与数据库中存储的密码是否匹配。

如果密码匹配,则代码将显示欢迎消息并打开主窗体。否则,它将显示一条无效的消息。

第四步:测试应用程序

您可以通过单击”运行”按钮来测试您的应用程序并检查登录窗口的功能。在登录窗口中输入正确的用户名和密码,然后单击”登录”按钮。如果凭据有效,则应显示欢迎消息并打开主窗体。否则,它应该显示无效的消息。

总而言之,通过VB编程实现登录窗口并连接数据库是一项重要的技能。它使您能够创建安全的应用程序,并处理用户的凭据验证。在未来的应用程序开发过程中,这些技能将对你非常有用。

相关问题拓展阅读:

vb登陆,连接数据库

界面设计:

1.ComboBox 名为: CboName 用来输入或显示用户名

2.TextBox 名为:TxtPassword 用来输入密码

3.TextBox 名为:TxtPasswordSure 在注册时用来输入确认密码

4.CheckBox 名为:ChkNew 用来新注册空哗 Caption属性:新建用户

5.CommandButton 名为:CmdLoad 用来登陆或注册 Caption属性:登陆

6.CommandButton 名为:CmdExit 用以退出 Caption 属性:退出

7.Data 不需要多设置,这个控件不用的,只是之一次加载时起作用.Visible属性:False

代码如下:

Dim MyTable As TableDef

Dim MyField As Field

Dim MyDatabase As Database

Dim Myrs As Recordset

Dim StrRule As String

Private Sub CboName_Change()

If Len(CboName.Text) > 8 Then

CboName.SelStart = 0

CboName.SelLength = 8

CboName.Text = CboName.SelText

CboName.SelStart = 8

End If

End Sub

Private Sub ChkNew_Click()

If ChkNew.Value = 0 Then

LblPasswordsure.Visible = False

TxtPasswordSure.Visible = False

CmdLoad.Caption = “登陆”

Else

LblPasswordsure.Visible = True

TxtPasswordSure.Visible = True

CmdLoad.Caption = “注册”

End If

CboName.SetFocus

End Sub

Private Sub CmdExit_Click()

End

End Sub

Private Sub CmdLoad_Click()

If CboName.Text = “” Then

MsgBox “请输入用户名!”, vbExclamation, “友情提示”

CboName.SetFocus

Exit Sub

ElseIf TxtPassword.Text = “” Then

MsgBox “请输入密码!”, vbExclamation, “友情提示”

TxtPassword.SetFocus

Exit Sub

ElseIf TxtPasswordSure.Text = “” And TxtPasswordSure.Visible = True Then

MsgBox “请输入确认密码!”, vbExclamation, “友情提示”

TxtPasswordSure.SetFocus

Exit Sub

End If

If CmdLoad.Caption = “注册” Then

If TxtPasswordSure.Text TxtPassword.Text Then

MsgBox “密码和确认密码不同!”, vbExclamation, “Sorry”

TxtPasswordSure.SetFocus

Exit Sub

End If

If CheckStr(CboName.Text) Then

MsgBox “运亏祥用户名可以是中文,也可旁搏以是英文或数字,但其中不能带有” & vbNewLine & “像“” & StrRule & “”的字符!”, vbExclamation, “友情提示”

CboName.SetFocus

Exit Sub

ElseIf CboName.Text = “user” Then

MsgBox “user是保留用字,不能用作用户名!”, vbExclamation, “Sorry”

Exit Sub

End If

Set MyDatabase = Workspaces(0).OpenDatabase(App.Path & “\save”)

Set Myrs = MyDatabase.OpenRecordset(“select * from user where Name = ” & Chr(34) & CboName.Text & Chr(34))

If Myrs.RecordCount > 0 Then

MsgBox “用户已经存在”, vbExclamation, “友情提示”

CboName.SetFocus

Exit Sub

End If

Set Myrs = MyDatabase.OpenRecordset(“select * from user”)

Myrs.AddNew

Myrs.Fields(“name”) = CboName.Text

Myrs.Fields(“password”) = TxtPassword.Text

Myrs.Fields(“logontime”) = Now

Myrs.Fields(“Best”) = “0”

Myrs.Fields(“Run”) = “0”

Myrs.Update

Myrs.Close

Set MyTable = MyDatabase.CreateTableDef(CboName.Text)

Set MyField = MyTable.CreateField(“Result”, 10, 4)

MyTable.Fields.Append MyField

Set MyField = MyTable.CreateField(“RightRatio”, 10, 6)

MyTable.Fields.Append MyField

Set MyField = MyTable.CreateField(“TestTime”, 10, 19)

MyTable.Fields.Append MyField

MyDatabase.TableDefs.Append MyTable

MsgBox “注册成功!”, vbExclamation, “恭喜你”

CboName.AddItem (CboName.Text)

ChkNew.Value = 0

MyDatabase.Close

Else ‘登陆

If TxtPassword.Text TxtPasswordSure.Text And TxtPasswordSure.Visible = True Then

MsgBox “密码与确认密码不同,请重新输入!”, vbExclamation, “友情提示”

TxtPassword.SetFocus

Exit Sub

End If

Set MyDatabase = Workspaces(0).OpenDatabase(App.Path & “\save”)

Set Myrs = MyDatabase.OpenRecordset(“select * from user where name =” & Chr(34) & CboName.Text & Chr(34))

If Myrs.RecordCount = 0 Then

MsgBox “用户不存在!”, vbExclamation, “友情提示”

Exit Sub

End If

Myrs.MoveFirst

If TxtPassword.Text = Myrs.Fields(“password”) Then ‘登陆成功

Myrs.Close

Set Myrs = MyDatabase.OpenRecordset(“select * from user”)

If Myrs.BOF = False Then Myrs.MoveLast

If Myrs.BOF = False Then Myrs.MoveFirst

Myrs.MoveFirst

For i = 0 To Myrs.RecordCount – 1

Myrs.Edit

If Myrs.Fields(“Name”) = CboName.Text Then

Myrs.Fields(“Run”) = “1”

Else

Myrs.Fields(“Run”) = “0”

End If

Myrs.Update

Myrs.MoveNext

Next

‘登陆成功,你加入要执行的操作.

Unload Me ‘登陆窗口卸载

Else

Static WrongTime As Integer

WrongTime = WrongTime + 1

If WrongTime = 2 Then End

MsgBox “密码错误!”, vbExclamation, “友情提示”

End If

Myrs.Close

MyDatabase.Close

End If

End Sub

Private Sub Form_Activate()

StrRule = “`~!@#$%^&*()_-+=|\;:.?/” & Chr(34) & Chr(39)

If Dir(App.Path & “\save.mdb”, vbHidden) = “” Then ‘数据文件不见了

Set MyDatabase = CreateDatabase(App.Path & “\save”, dbLangGeneral)

Set MyTable = MyDatabase.CreateTableDef(“user”)

Set MyField = MyTable.CreateField(“Name”, 10, 16)

MyTable.Fields.Append MyField

Set MyField = MyTable.CreateField(“Password”, 10, 6)

MyTable.Fields.Append MyField

Set MyField = MyTable.CreateField(“LogonTime”, 10, 19)

MyTable.Fields.Append MyField

Set MyField = MyTable.CreateField(“Best”, 10, 4)

MyTable.Fields.Append MyField

Set MyField = MyTable.CreateField(“Run”, 10, 1)

MyTable.Fields.Append MyField

MyDatabase.TableDefs.Append MyTable

ChkNew.Value = 2

Else

Set MyDatabase = Workspaces(0).OpenDatabase(App.Path & “\save”)

Set Myrs = MyDatabase.OpenRecordset(“select * from user”)

If Myrs.EOF = False Then Myrs.MoveLast

If Myrs.BOF = False Then Myrs.MoveFirst

Dim i As Integer

Dim ShowIndex As Integer

For i = 0 To Myrs.RecordCount – 1

CboName.AddItem (Myrs.Fields(“Name”))

If Myrs.Fields(“Run”) = “1” Then ShowIndex = i

Myrs.MoveNext

Next

If CboName.ListCount > 0 Then

CboName.ListIndex = ShowIndex

Else

ChkNew.Value = 2

End If

Myrs.Close

MyDatabase.Close

End If

TxtPassword.SetFocus

End Sub

Private Function CheckStr(StrTheword As String) As Boolean

Dim i As Integer

For i = 1 To Len(StrRule)

If InStr(1, StrTheword, Mid(StrRule, i, 1)) 0 Then ‘含有这样的字符

CheckStr = True

Exit Function

End If

Next

CheckStr = False

End Function

‘你要源文件可以发EMail给我索要.

‘我的电邮地址是:

其实跟ASP连接差不多的。同意楼上,不过未测试。

Dim

connStr

As

String

=

“Provider=Microsoft.Jet.OLEDB.4.0;Data

Source=”

&

Application.StartupPath

&

“\open.mdb”

‘Dim

conn

As

SqlConnection

=

New

SqlConnection(connstr)

Dim

conn

As

OleDbConnection

=

New

OleDbConnection(connStr)

conn.Open()

‘设置SQL查询语句

Dim

SQLstring

As

String

=

“select

*

from

tbUser

where

用户名='”

+

UsernameTextBox.Text

+

“‘

and

密码='”

+

PasswordTextBox.Text

+

“‘”

Dim

SQLstring

As

String

=

“select

*

from

tbUser

where

用户名='”

+

TextBox1.Text

+

“‘圆斗

and

密码橘拆磨='”

+

TextBox2.Text

+

“‘”

Dim

UserTable

As

DataTable

=

EditData.Search(connstr,

SQLstring)

‘判决用户名和密码是否正确

If

UserTable.Rows.Count

=

Then

MsgBox(“用户名或密码输入不正确,御罩请重试!”,

MsgBoxStyle.Exclamation,

“消息框”)

Else

‘password

=

Trim(PasswordTextBox.Text)

‘username

=

Trim(UsernameTextBox.Text)

username

=

UserTable.Rows(0)(“用户名”)

password

=

UserTable.Rows(0)(“密码”)

userpower

=

UserTable.Rows(0)(“权限”)

Form1.Show()

Me.Hide()

MsgBox(“欢迎进入图书馆管理系统!”,

MsgBoxStyle.Information,

“欢迎”)

End

If

就是查询数差逗据库中用户虚带卖表中与此用行亩户名和密码相符合的数据,

select

*

from

where

=’username’

and

=’password’

用户数据库

字段名

用户名

字段名

密码

用VB做了一个登陆界面.不知道怎么连接数据库

详细请留意:

这样山改就可袭兄以读取到数据了。如果有必拍唯袭要的话,可以通过DataGird来加载或者设置变量来存储,然后通过对比来完成验证。

C/S下访问远程access数据库的话,远程主机宴枯的伏春access数据库要设置成共享,并且你要有缺祥耐读写的权限才可以

如果你必须在VB6下访问远程的access数据库,建议你将它升级到SQL SERVER吧

我想用VB调用access里一个字段如雇员ID字段,数据库已经连接~

读取DAO(或ADO),然后引用字段即可。以DAO为例:罩燃

Sub test()

Dim db As DAO.Database

Dim rst As DAO.Recordset

db = OpenDatabase(“C:\test.mdb”)

rst = db.OpenRecordset(“MyTable”)

MsgBox rst(“雇员ID”)

End Sub

注意,默认情况下只会弹出之一条记录。如果需要多条记录,需要写循环语句,把倒码闷厅数第二句改成这样迟隐:

Do Until rst.EOF

MsgBox rst(“雇员ID”)

rst.MoveNext

Loop

vb做一个登录窗口连接数据库的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于vb做一个登录窗口连接数据库,VB编程:实现登录窗口并连接数据库,vb登陆,连接数据库,用VB做了一个登陆界面.不知道怎么连接数据库,我想用VB调用access里一个字段如雇员ID字段,数据库已经连接~的信息别忘了在本站进行查找喔。


数据运维技术 » VB编程:实现登录窗口并连接数据库 (vb做一个登录窗口连接数据库)