如何用VB连接SQL数据库做登录
VB连接SQL数据库,可通过ADO数据对象和SQL结构化查询语言实现。
ADO (ActiveX 数据对象), 这项新的数据访问技术的特性包括:更简单的对象模型;与其它 Microsoft 和非 Microsoft
的技术更好的集成;为本地和远程数据数据提供的通用接口;可远程访问的和断开的记录集;用户可访问的数据绑定接口;以及层次结构的记录集。结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
代码示例:
Private Sub XPButton1_Click()
On Error GoTo finish '防错代码,防止意外而导致的退出
sql = "select * from 用户管理 where 用户名='" & Text1.Text & "' and 密码='" & Text2.Text & "'"
cn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=True;User ID=**;Pwd=***;Data Source=**;Initial Catalog=***"
cn.Open
rs.CursorLocation = adUseClient
rs.Open sql, cn, adOpenDynamic, adLockOptimistic
'以上使用最通用的方法来查询数据库中是否有匹配的记录
If rs.EOF = True Then '如果没有记录则说明用户或密码为错误的
If pnum < 2 Then 'pnum就是密码验证次数,当次数超过3次,系统会自动保护退出
pnum = pnum + 1
MsgBox "用户名或密码错误!", vbInformation, "错误次数:" & pnum
rs.Close
cn.Close
Text1.Text = ""
Text2.Text = ""
Text1.SetFocus
Exit Sub
Else
MsgBox "用户名或密码错误超过三次,系统会自动退出", vbInformation, "提示"
End
End If
Else
loginname = rs.Fields(0)
Form1.Show
rs.Close
cn.Close
End If
Exit Sub
finish:
MsgBox Err.Description
rs.Close
cn.Close
End Sub
注意 cn.ConnectionString此句需依据实际的SQL数据库建立连接获得的字符串。
<%
Session("CONN_nei")="Provider=SQLOLEDB.1;Persist Security Info=True;User ID=**;Pwd=***;Data Source=**;Initial Catalog=***"
%>
2、登陆界面提交username用户名和pwd密码
3、接收页面进行判断
<!--#include file="shujuku.asp"-->
<%
'登录
username=request("username")
password=request("password")
if username&""<>"" and password&""<>"" then
'打开数据库查找是否有此用户
set conn=opendb("oabusy","conn","accessdsn")
if Session("cook_oabusy_username") <> "" then
sql = "update userinf set zhuangtai=0 where username='" & Session("cook_oabusy_username") & "'"
conn.execute sql
Session("cook_oabusy_username") = ""
end if
set rs=server.createobject("adodb.recordset")
sql="select * from userinf where username=" & sqlstr(username) & " and password=" & sqlstr(password) & " and forbid='no'"
rs.open sql,conn,1,1
'如果有此用户就进入系统
if not rs.eof and not rs.bof then
'------------基本信息写进session
Session("cook_oabusy_name")=rs("name") '姓名
Session("cook_oabusy_username")=rs("username") '用户名
Session("cook_oabusy_userdept")=rs("userdept") '所在部门
Session("cook_oabusy_userlevel")=rs("userlevel") '职务
Session("cook_oabusy_danwei")=rs("danwei") '单位
response.write "登录成功,正在进入系统..."
else
end if
end if
%>