求助:关于一个系统的登陆窗体!
小弟最近研究VB中的ADO控件,做一个简单的管理系统,有个登陆的问题请教大家:
一、数据库已经建好,用sql server2000建立的,里面有一个表user_pwd,其中存储了两列username,pwd,用于存放登陆者的名称和密码,并已插入数据,例:insert into user_pwd values('admin','admin')
二、添加登陆窗体中各个控件,和摸块,应用ActiveX ADO 控件,定义adoCon为adodb.connection;定义adoRs为adodb.recordset。。。。。。。。。。。。。。。
现在的问题是,我想输入一个用户名,然后输入密码,如果和数据库中的数据一致,就显示其他窗体,否则就弹出msgbox "请您先注册",然后注册即更新数据库。。。。。
我的思路是,现在在SQL中查询,然后再判断,二者是否一致,大概的代码如下:
dim strSQL as string
set adoRs =new adocon.recordset
strSQL="select username,pwd from user_pwd where username='"&txtUsername.text&"'"
adoRs=adocon.execute(strSql)
if '===============
这段怎么写? 怎么引用查询出来的一列里的某个值?adoRs.fields(0)-->这种好像不行,大家指教
'===============
end if
但不知道如何在VB中引用查询后的某行某列的一个数据,比如说,第一行的密码列:admin 怎么引用?
问题点数:0、回复次数:4Top
1 楼cxbkkk(本命年,旺啊!)回复于 2005-06-02 00:01:21 得分 0
你那种肯定不行啊,你要用adoRs.fields("pwd")来表示,假如你输密码的text窗体定义为txtPWD
if adoRs.eof then
msgbox "不存在该用户!请注册!"
你其他的窗体.show
else
if Trim(txtPWD) <> adoRs.fields("pwd") then
msgbox "密码不正确请重新输入!"
txtPWD.text=""
txtPWD.setfecus '具体后面是怎么的搞忘了,反正就是焦点到这里
end if
end if
第二个问题,这个最好还是通过查询来取数据,如果真的要某行某列的话,我想的是通过设定记录集,for循环的移动movenext,到那里后 记录集.fields("PWD")
不一定正确哈,只是一个思路,我一般是用查询实现Top
2 楼mornwoo(爱永恒伤离别)回复于 2005-06-08 07:48:58 得分 0
strSQL="select count(*) from user_pwd where username='"&txtUsername.text&"' and pwd='"
& "password" & "'"
adoRs=adocon.execute(strSql)
if adoRs.field(0)=0 then
'不匹配时的代码
……
adoRs.close
end
endif
'通过校验后的代码
……
Top
3 楼lx1986(清风过客)回复于 2005-06-09 19:47:55 得分 0
up
很简单的
漫漫学哦!!!Top
4 楼bwldwb6(多情无晴)回复于 2005-06-10 15:27:24 得分 0
支持一楼的说法啊
upTop




