如何用delphi做登陆界面 用户名和口令要链接到数据库的那种?

 我来答
割头红小鬼
推荐于2017-09-15 · TA获得超过632个赞
知道小有建树答主
回答量:250
采纳率:0%
帮助的人:283万
展开全部

以下内容仅供参考

步骤:

    1.新建一个窗体,在窗体中放置上图所示组建.

    2.连接数据库.选中ADOQuery1组建,点击左侧ConnectionString属性右侧的省略号,在弹出对话框中点击Build,再在弹出框中选择Microsoft OLE DB Provider for SQL Sever,点击"下一步",在新弹出的窗口中选择"使用Windows NT 继承安全设置"(当然,如果你的SQL安装时有用户名和密码则选择下面那个),然后在服务器上数据库下拉框中选择你要连接的数据库,最后一路确定即可.其他选项暂时可不用管它.

   3.写代码.双击"登陆",写如下代码

   procedure TForm1.BitBtn1Click(Sender: TObject);

begin

  try

    with adoquery1 do

    begin

      close;

      sql.clear;

      sql.add('select * from user_master where 用户名=:a and 密码=:b and 权限=:c');

      parameters.ParamByName('a').Value:=trim(combobox1.Text);

      parameters.ParamByName('b').Value:=trim(edit1.Text);

      if combobox1.Text ='' then

        begin

          application.MessageBox('请输入用户名','提示信息',64);

          combobox1.SetFocus;

          exit;

        end;

      if edit1.Text ='' then

        begin

          application.MessageBox('请输入密码','提示信息',64);

          edit1.SetFocus;

          exit;

        end;

      if radiobutton1.Checked=true then

        begin

          Quanxian:='1';

        end;

      if radiobutton2.Checked=true then

        begin

          Quanxian:='0';

        end;

      parameters.ParamByName('c').Value:=trim(quanxian);

      open;

      end;

      if adoquery1.RecordCount<>0 then

        begin

          Username:=combobox1.Text;

          Password:=edit1.Text;

          application.MessageBox('登陆成功','提示信息',64);

          form2.show;

          self.Hide;

        end

      else

        application.MessageBox('输入的用户名或密码错误','提示信息',64);

  except

    application.MessageBox('登陆失败','提示信息',64);

  end;

end;

 

    4.为了让用户在第一次使用管理系统时数据库文件可自动附加到SQL服务器中,可双击窗体空白部分,加入一下代码:

    procedure TForm1.FormCreate(Sender: TObject);

var

   ADOCommand:TADOCommand;

   s,DataPath : string;

begin

   adoConnection1:=TADOConnection.Create(nil);

   adoConnection1.ConnectionString:='Provider=SQLOLEDB;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=library';

   adoConnection1.LoginPrompt:=false;

   try

     adoConnection1.Connected:=true;

   except

     ADOCommand:=TADOCommand.Create(nil);

     ADOCommand.ConnectionString:='Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False';

     DataPath:=ExtractFilePath(Application.ExeName) ;

     s:='EXEC sp_attach_db @dbname = N'+char(39)+'library'+char(39)+','+

        '@filename1 = N'+char(39)+DataPath+'library_Data.MDF'+char(39)+

          ','+'@filename2 = N'+char(39)+DataPath+'library_Log.LDF'+char(39);

     ADOCommand.CommandText := s;

     ADOCommand.Execute();

   end;

end;

参考资料: http://www.koyda.net/

金山毒霸
2024-10-31 广告
电脑在启动游戏或软件的时候,桌面弹出错误提示框“0xc0000094”,应该怎么办?电脑报错,很大可能是因为某些DLL文件出现了异常,比如感染了病毒、DLL文件丢失等。解决方法如下:一、 手动解决方法1、先确定电脑操作系统是多少位的,现在的... 点击进入详情页
本回答由金山毒霸提供
真灵级存在
推荐于2017-10-14 · TA获得超过853个赞
知道小有建树答主
回答量:191
采纳率:0%
帮助的人:169万
展开全部
//--------------用户名和密码校验登录系统--------------------------------------------------------------
procedure Tlogin.Button1Click(Sender: TObject);
var
num,user,pass,temp:string;

begin
//------------------根据用户输入的密码和帐号进行查询----------
//保存用户输入的帐号和密码
user:=edit1.Text;
pass:=Edit2.Text;

ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='select 用户编号 from 用户清单 where 姓名='''+user+'''and 密码='''+pass+'''';
Adoquery1.Open;
temp:=adoquery1.FieldByName('用户编号').AsString;
if temp<>'' then
//如果输入了正确的用户名和密码,那么必然能查到用户编号,否则结果为空
begin
manage.Visible:=true;
manage.StatusBar1.Panels[0].Text:=user;
login.Hide;
end
//---------登录失败,提示用户重新输入----------------------------------
else
begin
ShowMessage('用户名或密码错误,请检查后重新登录');
end

end;

//----------登录窗口再次显示时,清空原来输入的用户名和密码--------------
procedure Tlogin.FormShow(Sender: TObject);
begin
edit1.Clear;
edit2.Clear;
end;
追问
还是不行啊 请问你能不能帮我弄弄?不胜感谢!QQ:790689982
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式