山东华阳农药:如何通过VB实现用户验证?

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/20 02:14:39
如何用VB做一个小程序,让VB在自动查询服务器里的数据库,如果TEXT1.TEXT=数据库的其中一条,则返回OK,否则NO.
小弟刚刚学网络编程,不是太懂.请各位高手指教!
就像一些软件验证序列号那样。

如果说是服务器里面的,则要看你是SQL服务器,还是支持ASP的空间
我这里有一个完整的处理方案.
另外,方案版权所有,希望不要贴到其他地方...

首先你需要给工程添加 MicroSoft InterNet Transfer Control 6.0这个控件

在需要的窗体添加控件,然后定义一个变量比如说d
Dim d
D=Inet1.OpenURL("网页地址")
好了,这个网页地址是处理数据库的重点 ,后面会说

数码龙 23:25:19
你现在作的,就是要用ASP实先查询获得的资料在数据库时候存在,我给你一个例子,==

FireZ 23:24:58
“网页地址”是否指向网络数据库的地址?
数码龙 23:25:27
不是
是指ASP处理网页的地址,
也就是说你程序向ASP提交数据,让他告数你是后存在这个数据,再返回到d

ASP代码参考

<%

dim dbpath
'Server对象的CreateObject方法建立Connection对象
Set Conn=Server.CreateObject("ADODB.Connection")
'Driver表示ODBC驱动程序
DBPath = Server.MapPath("数据库地址")
'连接数据库
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath

name=Request("name")
pass=Request("pass")
Dim sql
set rs=server.createobject("adodb.recordset")
sql="select * from [data] where name='" & name&"'"&"pass='"&pass&"'"
'访问数据库的data表,查找是否有name字段与例传来的name相同(前面的name是字段名,后面的是变量,是从Request("name")中获取值的

rs.open sql,conn,2,3 '打开数据库

If rs.EOF Then '如果找不到数据
Response.Write("0") '输出0,你程序接受到以后存到d,你只需要判断d="0" 就是没有找到资料
Else '如果不为空

Response.Write("1") '输出1,你程序接受到以后存到d,你只需要判断d="1" 就是找到资料
End If
rs.close'关闭与数据库的连接

%>

FireZ 23:38:50
那么VB程序里的代码操作应该如何编写?
数码龙 23:41:35
一个文本框假设是text1,数据访问方式假设是和我一样
这个是按钮的代码
Dim d
D=Inet1.OpenURL("http://空间地址/***.asp?name="&text1.text&"&pass="&text2.text)
if d="0" then msgbox "找不到数据"
if d="1" then masbog "找到数据"

***.asp就是刚才那段ASP的名称

Private Sub userLogin_Click()

userName = Trim(uid)
userPwd = Trim(pwd)

Dim rs As New ADODB.Recordset

Set rs = conn.Execute("select * from 读者信息 where 读者编号='" & Trim(uid.Text) & "'")

If rs.BOF = True And rs.EOF = True Then
MsgBox "不存在此用户", vbCritical, "Warning"
uid.Text = ""
rs.Close
End
End If

If userPwd <> rs.Fields(1).Value Then
MsgBox "密码错误!", vbCritical, "Warning"
pwd.Text = ""
End
End If

reader.Show
Me.Hide
End Sub

数据库里面有张表,表里面有2个字段——ID和Password。用户按确定按钮后,连接数据库,在表中以用户输入的ID和Password作为查询条件,如果返回记录里面有这条记录(通常会判定返回的记录数是否>0)。如果有的话,通过验证,否则弹出信息框。