你说的是有用户表吧? 假设表是这样: 【username】【password】 zswang ****** feishanm ****** var vFileName: string; vPassword: string; vUserName: string; begin vPassword := '111111'; vUserName := 'admin'; vFileName := 'c:\temp\temp.mdb'; ADOQuery1.ConnectionString := Format( 'Provider=Microsoft.Jet.OLEDB.4.0;User ID=%s;Jet OLEDB:Database Password=%s;' + 'Data Source=%s;Persist Security Info=True', [vUserName, vPassword, vFileName]); ADOQuery1.SQL.Text := Format( 'SELECT Count(*) FROM UserTable WHERE username=%s and password=%s', [ QuotedStr(EditUserName.Text), QuotedStr(EditPassword.Text)]); ADOQuery1.Open; if ADOQuery1.Fields[0].AsInteger <= 0 then begin ShowMessage('密码或用户名错误'); end else begin ShowMessage('验证通过'); end; ADOQuery1.Close; end;
ADOQuery1.SQL.Text := Format( 'SELECT Count(*) FROM UserTable WHERE username=%s and password=%s', [ QuotedStr(EditUserName.Text), QuotedStr(EditPassword.Text)]); 这里的%s代表什么意思啊?
%S表示格式化字符串类型的指令字符 第一个%S对应QuotedStr(EditUserName.Text) 第二个%S对应QuotedStr(EditPassword.Text) s:字符串类型 f:对应浮点数 u 和d一样是整型值等
你可以参考Delphi自带的例子:"?:\Program Files\Borland\Delphi?\Demos\Ado"
var
vFileName: string;
begin
vFileName := 'c:\temp\temp.mdb';
ADOTable1.ConnectionString := Format(
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Persist Security Info=False',
[vFileName]);
ADOTable1.TableName := 'Table1';
ADOTable1.Open;
end;
vFileName: string;
vPassword: string;
vUserName: string;
begin
vPassword := '111111';
vUserName := 'admin';
vFileName := 'c:\temp\temp.mdb';
ADOTable1.ConnectionString := Format(
'Provider=Microsoft.Jet.OLEDB.4.0;User ID=%s;Jet OLEDB:Database Password=%s;' +
'Data Source=%s;Persist Security Info=True',
[vUserName, vPassword, vFileName]);
ADOTable1.TableName := 'Table1';
ADOTable1.Open;
Text := ADOTable1.FieldByName('id').AsString;
end;
假设表是这样:
【username】【password】
zswang ******
feishanm ******
var
vFileName: string;
vPassword: string;
vUserName: string;
begin
vPassword := '111111';
vUserName := 'admin';
vFileName := 'c:\temp\temp.mdb';
ADOQuery1.ConnectionString := Format(
'Provider=Microsoft.Jet.OLEDB.4.0;User ID=%s;Jet OLEDB:Database Password=%s;' +
'Data Source=%s;Persist Security Info=True',
[vUserName, vPassword, vFileName]); ADOQuery1.SQL.Text := Format(
'SELECT Count(*) FROM UserTable WHERE username=%s and password=%s', [
QuotedStr(EditUserName.Text), QuotedStr(EditPassword.Text)]);
ADOQuery1.Open;
if ADOQuery1.Fields[0].AsInteger <= 0 then
begin
ShowMessage('密码或用户名错误');
end else
begin
ShowMessage('验证通过');
end;
ADOQuery1.Close;
end;
'SELECT Count(*) FROM UserTable WHERE username=%s and password=%s', [
QuotedStr(EditUserName.Text), QuotedStr(EditPassword.Text)]);
这里的%s代表什么意思啊?
第一个%S对应QuotedStr(EditUserName.Text)
第二个%S对应QuotedStr(EditPassword.Text)
s:字符串类型
f:对应浮点数
u 和d一样是整型值等