读书人

一个关于登陆框的有关问题!请!多谢

发布时间: 2012-02-19 19:43:37 作者: rapoo

一个关于登陆框的问题!请高手指点!谢谢
procedure TForm1.Button1Click(Sender: TObject);
begin
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add( 'select * from users ');
adoquery1.sql.add( 'where names= '+quotedstr(edit1.text));
adoquery1.open;
if adoquery1.fields[0].value=null then
begin
messagedlg( '请确认你输入的用户名是否正确 ',mtwarning,[mbok],0)
end
else if
adoquery1.fields[2].value=quotedstr(edit2.text) then
begin
form1.Hide;
form2.show;
end
else
begin
messagedlg( '密码错误 ',mtwarning,[mbok],0);
exit;
end;
end;


SQL SERVER数据库
表名:suers
userid names passwd
001 xl 0002
002 ll 1234

现在问题是不论你输入正确的密码还是错误的密码都是提示密码错误,请那位高手麻烦解答一下

[解决办法]
我自己写的。能用!

procedure TfLogin.bLoginClick(Sender: TObject);
var
aConn:TADOConnection;
aQry:TADOQuery;
sSql:string;
begin
if eName.Text = ' ' then
begin
ShowMessage( '用户名未填写…… ');
exit;
end;
aConn:= TADOConnection.Create(fLogin);
aQry:= TADOQuery.Create(fLogin);
try
aConn.ConnectionString := ' ';
aQry.SQL.Clear;
aConn.ConnectionString := 'Provider=SQLOLEDB.1;Persist Security Info=False; ' +
'User ID=sa;Initial Catalog=registerdata;Data Source=Server ';
aConn.LoginPrompt := False;
aConn.Connected := True;
aQry.Connection := aConn;

sSql:= 'select u.*,d.*,t.user_type_prority ' +
' from userinfo u,Dict_Unit d,User_type t ' +
' where u.AssociateFieldName = d.F_id and u.user_name = ' ' '+ eName.Text + ' ' ' ' +
' and u.user_type_id = t.id ';

aQry.SQL.Text := sSql;
aQry.Open;
if not ( aQry.Eof and aQry.Bof )then
begin
//if (aQry.FieldByName( 'user_password ').AsString=ePwd.Text) and (aQry.FieldByName( 'AssociateFieldName ').AsInteger = 7 )then
if (aQry.FieldByName( 'user_password ').AsString=ePwd.Text) then
begin
if aQry.FieldByName( 'user_type_prority ').AsInteger = 9996 then
begin
fLogin.Hide;
Application.createForm(TfClient,fClient);
fClient.iUserID := aQry.FieldByName( 'user_id ').AsInteger;
fClient.sUserName := aQry.FieldByName( 'user_name ').AsString;
fClient.iUnitId := aQry.FieldByName( 'AssociateFieldName ').AsInteger;
fClient.sUnitName := aQry.FieldByName( 'F_UnitName ').AsString;
fClient.iPlaceId := aQry.FieldByName( 'F_BelongPlace ').AsInteger;
fClient.showmodal;
fClient.free;
fLogin.Show;
end;
if aQry.FieldByName( 'user_type_prority ').AsInteger = 9997 then
begin
fLogin.Hide;
Application.createForm(TfManagment,fManagment);
fManagment.eOperator.Tag := aQry.FieldByName( 'user_id ').AsInteger;
fManagment.eOperator.Text := aQry.FieldByName( 'user_name ').AsString;
fManagment.iUnitId := aQry.FieldByName( 'AssociateFieldName ').AsInteger;


fManagment.eUnitName.Tag :=aQry.FieldByName( 'AssociateFieldName ').AsInteger;
fManagment.sUnitName := aQry.FieldByName( 'F_UnitName ').AsString;
fManagment.eUnitName.Text := aQry.FieldByName( 'F_UnitName ').AsString;
fManagment.iPlaceId := aQry.FieldByName( 'F_BelongPlace ').AsInteger;
fManagment.iGroupId := aQry.fieldByName( 'User_group_id ').AsInteger;
fManagment.showmodal;
fManagment.free;
fLogin.Show;
end;
end
else
begin
ShowMessage ( 'No this type nuser: ' + eName.Text + ', or error password ');
aQry.Close;
end;
end
else
ShowMessage ( 'Query is empty ');
finally
aConn.Close;
eName.Text := ' ';
ePwd.Text := ' ';
end;
end;

读书人网 >.NET

热点推荐