vb登陆界面用户名调用数据库如何实现?

vb登陆界面用户名调用数据库如何实现?,第1张

使用Access 2003来建立一个新的空数据库,命名为db1,存储路径为D:\db1,在db1中创建一张新的表格,命名为用户信息表,并设定用户信息表中有两个字段,分别为用户名称和用户口令,注意它们的数据类型均为文本格式,一定要注意,不然到后面代码就会出错,而且极难查错。 完成设计视图之后输入一条记录,记录中的用户名属性值为Angel,密码为123。输入一条记录的目的是用于检验登录代码是否正确以及起到一点演示效果。

下面打开VB6.0,建立一个新的工程,命名为工程1,打开就有一个新的窗体Form1。布置界面如图所示,当然这只是个示例,你可以有更好的界面设计。图中,管理员名称和口令是两个文本框,名称分别为TxtUserName 和TxtPassword,登录和取消为两个按钮,名称分别为CmdLogin和CmdCancel。

准备工作完成之后,就可以添加代码了。代码如下,我将逐行注释。

取消按钮最为简单,代码如下:

Private Sub CmdCancel_Click()

'//结束

End

End Sub

下面添加登录按钮的代码。

Private Sub CmdLogin_Click()

Dim UserName As String

Dim PassWord As String

Dim conn As New ADODB.Connection '定义新的连接

Dim rs As New ADODB.Recordset'定义新的记录集

Dim StrSQL As String '定义字符串StrSQL

conn.Open "Provider=Microsoft.Jet.OLEDB.4.0Data Source=D:\db1.mdb" '打开连接,指定连接路径和支持

UserName = Trim(TxtUserName.Text)'将文本框内的值赋给定义好的变量,trim为类型转换函数

PassWord = Trim(TxtPassword.Text)

If UserName = "" Or PassWord = "" Then'如果输入的用户名和密码为空则

MsgBox "对不起,用户或密码不能为空!请重新输入!!", vbCritical, "错误"

ElseIf UserName <>Empty And PassWord <>Empty Then '否则如果用户名与密码都不为空则Cnum自加1,Cnum为窗体载入时添加数字变量,用于记录错误登录次数

Cnum = Cnum + 1

StrSQL = "select * from 用户信息表 where 用户名称= '" &UserName &"'and 用户口令 ='" &PassWord &"'"

'从用户信息表中查询用户名称和用户口令两个字段并获得属性值,为下面的判断语句做准备

rs.Open StrSQL, conn, adOpenKeyset, adLockPessimistic '//打开记录集,可以用数字代替

If rs.EOF = True Then '此句为判断的核心语句,EOF的返回值表示为最后一行的后一行,和BOF类似,返回值为TRUE,则表示表中不存在这一行记录,由此判断密码是否与表中记录相一致,从而达到验证的目的。

MsgBox "对不起,无此用户或者密码不正确!请重新输入!!", vbCritical, "错误"

TxtUserName.Text = "" '置文本框为空

TxtPassword.Text = ""

TxtUserName.SetFocus

rs.Close '每次打开记录完成后需要注意及时关闭,不然下次使用时会出错

If Cnum >= 3 Then '判断输入错误次数,以提高系统的安全性能

MsgBox "对不起,您已经多次失败,无权 *** 作本系统!", vbCritical, "无权限"

Unload Me

Exit Sub

End If

Else '登陆成功,以下为权限验证

Form2.Show

Unload Me

End if

End if

End Sub

Private Sub Form_Load()

'//加载主窗时给文本框赋值

Cnum = 0

首先看你是什么样的数据库,根据你的数据库,先连接到数据库上,再针对你的表“用户名及密码”进行CRUD的 *** 作,下面是多种数据库的连接方法,希望对你有用

SQL:为查询语句,可以存放 *** 作数据库的语句,如:

SQL="select * from 用户表"

SQL="insert into 用户表(用户名,密码) values('" &用户名.Text &"','" &密码.Text &"')"

VB连接数据库的方法

一、ASP的对象存取数据库方法

在ASP中,用来存取数据库的对象统称ADO(Active Data Objects),主要含有三种对象:Connection、Recordset 、Command

Connection:负责打开或连接数据

Recordset:负责存取数据表

Command:负责对数据库执行行动查询命令

二、连接各数据库的驱动程序

连接各数据库可以使用驱动程序,也可以使用数据源,不过我建议大家使用驱动程序,因为使用驱动程序非常方便、简单,而使用数据源比较麻烦。

ODBC链接

适合数据库类型 链接方式

access

"Driver={microsoft access driver(*.mdb)}dbq=*.mdbuid=adminpwd=pass"

dBase

"Driver={microsoft dbase driver(*.dbf)}driverid=277dbq=------------"

Oracle

"Driver={microsoft odbc for oracle}server=oraclesever.worlduid=adminpwd=pass"

MSSQL server

"Driver={sql server}server=servernamedatabase=dbnameuid=sapwd=pass"

MS text

"Driver={microsoft text driver(*.txt*.csv)}dbq=-----extensions=asc,csv,tab,txtPersist SecurityInfo=false"

Visual Foxpro

"Driver={microsoft Visual Foxpro driver}sourcetype=DBCsourceDB=*.dbcExclusive=No"

MySQL

"Driver={mysql}database=yourdatabaseuid=usernamepwd=yourpasswordoption=16386"

OLEDB链接

适合的数据库类型 链接方式

access

"Provider=microsoft.jet.oledb.4.0data source=your_database_pathuser

Oracle

"Provider=OraOLEDB.Oracledata source=dbnameuser

MS SQL Server

"Provider=SQLOLEDBdata source=machinenameinitial catalog=dbnameuserid=sapassword=pass"

MS text

"Provider=microsof.jet.oledb.4.0data source=your_pathExtended Properties'textFMT=Delimited'"

而我们在一般情况下使用Access的数据库比较多,在这里建议连接Access数据库使用下面的方法:

dim conn

set conn = server.createobject("adodb.connection")

conn.open = "provider=microsoft.jet.oledb.4.0" &"data source = " &server.mappath("../db/bbs.mdb")

其中../db/bbs.mdb是你的数据库存放的相对路径!如果你的数据库和ASP文件在同一目录下,你只要这样写就可以了:

dim conn

set conn = server.createobject("adodb.connection")

conn.open = "provider=microsoft.jet.oledb.4.0" &"data source = " &server.mappath("bbs.mdb")

有许多初学者在遇到数据库连接时总是会出问题,然而使用上面的驱动程序只要你的数据库路径选对了就不会出问题了。

sqlserver的连接可以如下:

Set conn=Server.CreateObject("ADODB.Connection")

on error resume next

connstr="Provider=SQLOLEDBPassword=***Persist Security Info=TrueUser Catalog=msdbData Source=localhostConnect Timeout=15"

conn.Open connstr

经常会在连接DB的时候用到,就是不知道代表什么意思。。。

RS.OPEN SQL,CONN,A,B

A:

ADOPENFORWARDONLY(=0)

只读,且当前数据记录只能向下移动

ADOPENKEYSET(=1)

只读,当前数据记录可自由移动

ADOPENDYNAMIC(=2)

可读写,当前数据记录可自由移动

ADOPENSTATIC(=3)

可读写,当前数据记录可自由移动,可看到新增记录

B:

ADLOCKREADONLY(=1)

缺省锁定类型,记录集是只读的,不能修改记录

ADLOCKPESSIMISTIC(=2)

悲观锁定,当修改记录时,数据提供者将尝试锁定记录以确保成功地编辑记录。只要编辑一开始,则立即锁住记录。

ADLOCKOPTIMISTIC(=3)

乐观锁定 ,直到用Update方法提交更新记录时才锁定记录。

ADLOCKBATCHOPTIMISTIC(=4)

批量乐观锁定,允许修改多个记录,只有调用UpdateBatch方法后才锁定记录。

当不需要改动任何记录时,应该使用只读的记录集,这样提供者不用做任何检测。

对于一般的使用,乐观的锁定可能是最好的选择,因为记录只被锁定一小段时间,数据在这段时间被更新。这减少了资源的使用。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6684256.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存