PB制作登录窗口 问题

来源:百度知道 编辑:UC知道 时间:2024/06/07 10:37:50
以下是窗口的代码···不知道怎么的··老提示密码错误··明明输对了··代码我也来回检查··貌似没错···PB高手帮我看看··是代码出问题了吗··
string ls_password
string ls_id
integer li_re,n,m
ls_id=string(ddlb_1.text)
SQLCA.DBMS = "ODBC"
SQLCA.DBMS = "ODBC "
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='DSN=zhongjiazhao;UID=;PWD='"
CONNECT ;
select pass
into :ls_password
from admin
where glyid =:ls_id;
if ddlb_1.text="" or sle_1.text="" then
messagebox("警告!","密码不能为空!",exclamation!,ok!)
else
if ls_password=sle_1.text then
messagebox("欢迎使用","您的密码是正确的,欢迎使用本程序!",Information!,ok!)
open(w_main)
close(w_login)

else
li_re=messagebox("警告!","您的密码是错误的,是否重新输入?",exclamation!,yesno!)

if li_re=1 then
ddlb_1.allowedit=true
ddlb_1.text=""

以下几点让你参考一下:
1、CONNECT ; 后面增加以下代码
if sqlca.sqlcode <> 0 then
messagebox("连接数据库","数据库连接失败,错误信息:"+string(sqlca.sqlerrtext))
return
end if
2、if ddlb_1.text="" or sle_1.text="" then前面增加以下代码:
if sqlca.sqlcode = 100 then
messagebox("警告","您输入的用户不存在")
return
end if
3、if ls_password=sle_1.text then这句改成if trim(ls_password) = trim(sle_1.text) then
以上看出现什么情况,还找不出问题的话建议您DEBUG一下。

很简单啦.1.请检查你的pass在数据库里是CHAR类型的吗?
2.在li_re=messagebox("警告!","您的密码是错误的,是否重新输入?",exclamation!,yesno!)这句的前面加入
messagebox('1', trim(sle_1.text))
messagebox('2', ls_password)
比较下2次出现的窗口是否相同

关键点是sle_1.text和ls_password的值的类型都要为string型.