用delphi设计 软件用户登陆验证 网络 SQL数据库 验证登陆姓名和密码

delphi设计软件登陆验证网络SQL数据库验证登陆姓名和密码!最好有DELPHI源代码!... delphi设计 软件登陆验证 网络 SQL数据库 验证登陆姓名和密码!最好有DELPHI源代码! 展开
 我来答
百度网友b29cdfc
2010-05-06 · TA获得超过939个赞
知道小有建树答主
回答量:154
采纳率:100%
帮助的人:87.5万
展开全部

1、创建管理员表

CREATE TABLE  Ad

(密码 CHAR(8) PRIMARY KEY,

姓名 varchar(20)

);

2.管理员表初始化

insert into Ad (密码,姓名)

 VALUES('admin', 'admin');

3.创建学生表   

   CREATE TABLE Student

(学生学号 CHAR (10) PRIMARY KEY,

学生姓名 VARCHAR (20) UNIQUE, 

学生性别 CHAR (2),

学生年龄 SMALLINT,

班级号 CHAR (4),

FOREIGN KEY (班级号) REFERENCES Class(班级号)

);

4. 创建教师表

  CREATE TABLE Teacher

  (教工号 CHAR (8) PRIMARY KEY,

教师姓名 VARCHAR (20) UNIQUE,

教师性别 CHAR (2),

职称 VARCHAR (10),

);

登陆源码:

if radiobutton1.Checked then

 begin

  adoquery1.close;

  adoquery1.SQL.clear;

  adoquery1.SQL.add('select * from Student');

  adoquery1.SQL.add('where 学生学号='''+edit2.text+''' and 学生姓名='''+edit1.text+'''');

   adoquery1.Open;

  if adoquery1.RecordCount>0 then

  begin

    form1.hide;

    form2.show;

    end

else

   showmessage('用户名不存在或者权限错误,请查证后输入');

    edit2.Clear

  end

 else if radiobutton2.Checked then

begin

  adoquery1.Close;

  adoquery1.SQL.clear;

  adoquery1.SQL.add('select * from Teacher');

  adoquery1.SQL.add('where 教工号='''+edit2.text+''' and 教师姓名='''+edit1.text+'''');

   adoquery1.Open;

if adoquery1.RecordCount>0 then

  begin

    form1.hide;

    form3.show;

  end

else

   showmessage('用户名不存在或者权限错误,请查证后输入');

    edit2.Clear;

 end

else if radiobutton3.Checked then

 begin

  adoquery1.close;

  adoquery1.SQL.clear;

  adoquery1.SQL.add('select * from Ad');

  adoquery1.SQL.add('where 密码='''+edit2.text+''' and 姓名='''+edit1.text+'''');

   adoquery1.Open;

  if adoquery1.RecordCount>0 then

  begin

    form1.hide;

    form4.show;

    end

else

   showmessage('用户名不存在或者权限错误,请查证后输入');

    edit2.Clear;

    end

kaviechen
2010-05-10 · TA获得超过251个赞
知道小有建树答主
回答量:308
采纳率:0%
帮助的人:373万
展开全部
刚刚第一个人回答的貌似是客户端直接连接到数据库,然后查询表里的用户名和密码,那就有问题了:
1、本地必须保存SQL用户名和密码,既然知道用户名密码就没必要再多此一举去验证表里的用户名和密码了;
2、本地加密数据库密码,这也是不安全的,即使用加密,你也需要用到解密后才能去连接数据库吧,内存里一查明文就出来了。

这种方法在ASP/PHP中还是有用的,本地就不要用这种方法了。

安全的做法是:
1、客户端通过TCP发送用户名和密码发给服务端;
2、服务端接收到数据后连接数据库验证,验证通过后返回客户端结果
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dj1893
2010-05-21 · TA获得超过1099个赞
知道小有建树答主
回答量:224
采纳率:0%
帮助的人:176万
展开全部
登录按钮中
声明变量
var
vPassword :string;
按钮中代码
With vQuery Do
Begin
DatabaseName := '你的数据库名';
close;
SQL.Text := ' Select * From Operator Where Id='''+edit1.Text+'''';
Open;
If Eof Then //如果用户名错误
begin
ShowMessage('非法用户');
edit1.SetFocus;
Exit;
end;//end if

vPassword := FieldByName('Password').AsString;
If Trim(vPassword) <> Trim(edit2.Text) Then //如果用户口令错误
begin
ShowMessage('用户口令错误!');
Free;
edit2.SelectAll;
edit2.SetFocus;
Exit;
end; //end if
end;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式