我在做一个系统的登录框。窗口上包含如下控件:cmbusername(选择表adminuser中的name)
edtpassWord(用户输入密码)
btnOK(确定)在用户输入用户名和密码后要点击"确定"按钮,确定按钮的目的是在表adminuser中搜索用户名为cmbUserName.text的密码是多少。然后与edtpassword.text中用户输入的密码相比较判断对不对。便写了如下的代码:procedure TfrmLogin.btnOkClick(Sender: TObject);
var
strsql:string;
strPassWord:string;
begin
if edtPassWord.Text='' then
MessageBox(handle,'请输入密码','提示',MB_ICONEXCLAMATION)
else begin
strsql:='select password from adminuser where username=''%s''';
Query_Login.SQL.Clear;
Query_Login.SQL.Add(format(strsql,[cmbUserName.text]));
Query_Login.ExecSQL;
endend;
我的意思是我怎样才能把sql执行的结果赋值给strPassWord呢???
edtpassWord(用户输入密码)
btnOK(确定)在用户输入用户名和密码后要点击"确定"按钮,确定按钮的目的是在表adminuser中搜索用户名为cmbUserName.text的密码是多少。然后与edtpassword.text中用户输入的密码相比较判断对不对。便写了如下的代码:procedure TfrmLogin.btnOkClick(Sender: TObject);
var
strsql:string;
strPassWord:string;
begin
if edtPassWord.Text='' then
MessageBox(handle,'请输入密码','提示',MB_ICONEXCLAMATION)
else begin
strsql:='select password from adminuser where username=''%s''';
Query_Login.SQL.Clear;
Query_Login.SQL.Add(format(strsql,[cmbUserName.text]));
Query_Login.ExecSQL;
endend;
我的意思是我怎样才能把sql执行的结果赋值给strPassWord呢???
解决方案 »
- delphi的DBGrid如何选择某行中的某个字段
- ****高手们来一下,关于COM+的一些问题*******
- 如何在程序中设置对话框的Options属性?
- DELPHI菜鸟发问,大家帮忙啊。
- 三层访问问题
- 大家在源代码窗口用什么字体? Courier New对中文显示不好, 宋体显示的字母间距太大
- fastreport大侠请进
- 如何在鼠标移上菜单时改变菜单的背景颜色?在线
- 如何给别人送分,请高人指教。谢谢
- JPG 图像问题
- 我写了一个类是从TCustomControl派生,我想给他加上 caption属性让他在设计时上面就有caotion,就象按忸控件一样拉上来就有一个"button1"?
- 数据备份
strsql:='select password from adminuser where username=''%s''';
Query_Login.close;
Query_Login.SQL.Clear;
Query_Login.SQL.Add(format(strsql,[cmbUserName.text]));
Query_Login.open;//这里必须是open,才会返回值
end;strPassWord:=Query_Login.fieldbyname('password').asstring;
这样就可以了
数据库如果用sql 的话呢!~~~
那么在下面的这段代码中有 需要修改一些地方!~~~
其实你在登陆的时候最好不要用query,如果用table 那就最好,
用table 的lookup方法
代码如下:
var key_values :variant ;
With Table1 do
begin
close ;
TableName :='login';//你的数据库表
active :=true;
key_values :=Lookup('pass_name',cmbusername.text,'pass-wd');//根据用户
//名来查找对应的密码
if (key_values =strPassWord.text)
then showmessage('登陆成功')
else showmessage('密码错误')
end;
首先 :你应该判断该用户名是否存在 ;用locate 方法
然后 :你 在用lookup 方法来判断密码是否正确;当然,正如我上面说的那样,如果你的数据库是sql ,
在数据库中,你定义的密码字段长是多少,那么在 比较返回lookup 返回的密码与输入的密码
的时候就存在这样一个问题:位数不一致,这样也会提示你密码错误,
所以这个时候你需要给strPassWord.text中输入的补足不足的位数或删除多余的位数;呵呵,以上就是我做登陆时候的一点心得!~~~记得给我分哦!~~~
................
......................
Query_Login.open;
if not (query1.isempty) then
strPassWord:=Query1.fieldbyname('edtpassWord').asstring
else
exit;
Query_Login.open;
if not (query1.isempty) then
strPassWord:=Query1.fieldvalue['edtpassWord'];//这个是变体类型,能够自动转换
else
showmessage('没有找到记录,密码输入错误');