我有一个登录窗口,用于进入我的应用程序,在这里我插入了一个名为login1的表,并有两列分别为"username"
和"password"
。我将"登录"的事件分为两种情况:1)一个命令按钮2)输入键。因此,我习惯在按钮点击事件和用户事件中编写以下代码,以触发按下"Enter!"键。
if KeyDown(KeyEnter!) THEN //In User Event case only
string ls_unm;
string ls_pass,ls_field;
ls_unm=dw_log.GetItemString(1,"user_name1");
ls_pass=dw_log.GetItemString(1,"password1");
select password1 into :ls_field from login1 where login1.user_name1=:ls_unm;
if(ls_field=ls_pass) then
commit;
close (w_login);
open(w_main);
else
rollback;
messagebox( "","login faild");
dw_log.Reset();
dw_log.InsertRow(0);
end if
END if
,但我总是得到"登录失败"的响应,即使我通过调试模式检查它如何使用
您可能错过了" acceptttext "行?
if KeyDown(KeyEnter!) THEN //In User Event case only
string ls_unm;
string ls_pass,ls_field;
dw_log.AcceptText()
ls_unm=dw_log.GetItemString(1,"user_name1");
ls_pass=dw_log.GetItemString(1,"password1");
我第二厄瓜多尔关于AcceptText()
。
使用if dw_log.accepttext() <> 1 then return
,处理任何数据验证失败。
其次,命令按钮有一个Default
属性,当用户按下enter
键时将触发点击事件。您不需要为两者使用单独的事件。这只是一个拙见。