回 帖 发 新 帖 刷新版面

主题:拜求一道密码验证题!!!

假如VF中一张student表,内有学号和姓名两个字段,做一个表单,表单包括两个文本框,分别是
text1和text2,还包括一个caption属性为“登陆”按钮

要求是:在text1和text2文本框中输入学号和姓名,然后点登陆按钮,如果一一能匹对表中的学号和姓名,则显示“允许”登陆,否则显示“不允许登陆”

各位大侠,大家看看我的这段代码问题出在哪,我的代码虽然可以显示显示“允许登陆”和“不允许登陆”,课关键是,假如我输入一个不存在的学号,也会出现允许登陆,空值也会显示允许登陆

sele 学号,姓名 from student where 学号 = allt(thisform.text1.value) .and. allt(thisform.text2.value) into cursor new
sele new
if .not. eof()
message("允许登陆")
endif
if eof()
message("不允许登陆")
endif
thisform.refresh

回复列表 (共4个回复)

沙发

if !used('student')
  use student in 0
endif
sele student
n = 0
count to n for alltr(学号) == allt(thisform.text1.value) .and. alltr(姓名)==allt(thisform.text2.value)
if n > 0
  message("允许登陆")
else
  message("不允许登陆")
endif

板凳


奇怪了,我吧代码换成

sele 学号,姓名 from student where allt(学号) == allt(thisform.text1.value) .and. allt(姓名) == allt(thisform.text2.value) into cursor new
sele new
if .not. eof()
wait "可以登陆" window
endif
if eof()
wait "不可以登陆" window
endif
thisform.refresh

就完全没有问题了!!!!!!!!!!!!!!
好奇怪了
为什么message(“”)不行了呢!!!!!!!!

3 楼

Visual FoxPro 中的wait函数后面的两个单引号之间的东西是要显示出来的信息内容,不需要加括号,
也不允许加括号,因为两个单引号之间的内容并不以变量形式保存。

4 楼

把message()换成messagebox()就行了.还用我的那段程序,你的代码太浪费资源了.意思也不是太明了.

我来回复

您尚未登录,请登录后再回复。点此登录或注册