各位大虾好!!
兄弟碰到了一个问题,还不能解决的,是一个登陆窗口的,有一个数据库表为USERNAME(bh(编号),username(用户名),password(密码)),2个文本EDIT1,EDIT2,1个COMBOBOX1,我想实现的目标是当我在COMBOBOX1选用户明时,在EDIT1中对应编号就能显示,在输入密码就可以登陆了,
但是我现在的在COMBOBOX1选用户明时,在EDIT1中编号就不能对应就能显示,看一下我写的代码是什么出现错误,谢谢!!procedure Tf_login.ComboBox1Enter(Sender: TObject);
var
i:integer;
begin
adoquery1.Close;
adoquery1.SQL.Clear ;
adoquery1.SQL.Add('select * from username where username="combobox1.items.Values"' );
adoquery1.Open ;
edit1.Text := trim(adoquery1.Fieldbyname('bh').Value);
end;
end.
兄弟碰到了一个问题,还不能解决的,是一个登陆窗口的,有一个数据库表为USERNAME(bh(编号),username(用户名),password(密码)),2个文本EDIT1,EDIT2,1个COMBOBOX1,我想实现的目标是当我在COMBOBOX1选用户明时,在EDIT1中对应编号就能显示,在输入密码就可以登陆了,
但是我现在的在COMBOBOX1选用户明时,在EDIT1中编号就不能对应就能显示,看一下我写的代码是什么出现错误,谢谢!!procedure Tf_login.ComboBox1Enter(Sender: TObject);
var
i:integer;
begin
adoquery1.Close;
adoquery1.SQL.Clear ;
adoquery1.SQL.Add('select * from username where username="combobox1.items.Values"' );
adoquery1.Open ;
edit1.Text := trim(adoquery1.Fieldbyname('bh').Value);
end;
end.
解决方案 »
- delphi登录窗体代码
- 生成EXE文件运行不了?为什么?
- com口接收数据时出现了不正常现象。高手们进来看看。
- 急寻Delphi/C++兼职高手:
- 如何在Delphi自动弹出错误框前检查DLL是否存在??
- 第一次用Delphi7,怎么用报表实现一个小功能,求教!
- 还是delphi中利用sql查询foxpro的问题。
- DataSetProvider是否不能和ADO数据集连接
- DBCHECKBOX初始的状态总是选定的,能不能变成不选定的(送50分)
- 有关midas.dll的编译,50分相送,大虾帮忙!
- 用dspack开发遇到一个问题,怎么能够在VideoWindow中选定范围后然后抓取图象
- 散分:应聘失败!郁闷!
adoquery1.SQL.Clear ;
adoquery1.SQL.Add('select * from username where username='''+combobox1.items.Values +'''');
adoquery1.Open ;
换成combobox1.text
换成combobox1.text这个不成的,
这个程序的只要错误就是
adoquery1.SQL.Add('select * from username where username='''+combobox1.items.Values +'''');
我现在对COMBOBOX1不知道有什么,才好了
请指点
这个我也试了也是不行的,
procedure TForm1.ComboBox1Change(Sender: TObject);
var
i:integer;
begin
adoquery1.Close;
adoquery1.SQL.Clear ;
adoquery1.SQL.Add('select * from username where username='''trim(combobox1.text)'''' );
adoquery1.Open ;
edit1.Text := adoquery1.Fieldbyname('bh').asstring;
end;
end;
var
i:integer;
begin
adoquery1.Close;
adoquery1.SQL.Clear ;
adoquery1.SQL.Add('select * from username');
adoquery1.SQL.Add(format('where username=''%s''',[trim(combobox1.text)]));
adoquery1.Open ;
edit1.Text := adoquery1.Fieldbyname('bh').asstring;
end;
end;
vID: String;
vUser: String;
vPwd: String;
end;在FormShow事件里:
var
vUserInfo: TUserInfo;
begin
……
ADOQuery1.SQL.Text := 'SELECT id, user, pwd FROM userinfo ORDER BY user';
ADOQuery1.Open;
while not ADOQuery1.Eof do
begin
vUserInfo := TUserInfo.Create;
vUserInfo.vID := ADOQuery1.FieldByName('id').AsString;
vUserInfo.vUser := ADOQuery1.FieldByName('user').AsString;
vUserInfo.vPwd := ADOQuery1.FieldByName('pwd').AsString;
ComboBox1.Items.AddObject(vUserInfo.vUser, TObject(vUserInfo));
ADOQuery1.Next;
end;
ComboBox1.ItemIndex := 0;
end;在[登录]按钮的点击事件里:
begin
if ComboBox.ItemIndex<0 then
begin
--请选择登录用户名
Exit;
end;
if TUserInfo(ComboBox.Objects[ComboBox.ItemIndex]).vPwd<>edtPwd.Text then
begin
--密码错误
Exit;
end;
end;
换成combobox1.text
//把字段值赋个combobox1
procedure TForm1.ComboBox1Enter(Sender: TObject);
begin
combobox1.Clear;
adoquery1.SQL.Add('select * from aa');
adoquery1.Open;
if adoquery1.RecordCount<>0 then
begin
while adoquery1.Eof<>true do
begin
combobox1.Items.Add(adoquery1.fieldbyname('a').AsString);
adoquery1.Next;
end;
end;
adoquery1.Close;
end;
////////////////////////////////
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
adoquery1.SQL.Clear ;
adoquery1.SQL.Add('select * from aa where a='''+trim(combobox1.text)+'''' );
adoquery1.Open ;
edit1.Text := adoquery1.Fieldbyname('b').asstring;
adoquery1.Close;
end;
再不行你找我,你仔细检查一下你的数据库字段和数据。
在TUserInfo里面的vID就是你的BH,然后在ComboBox的Change事件中Show出TUserInfo(ComboBox1.Objects[ComboBox1.ItemIndex]).vID,然后把它赋值给Edit.Text!没有不成功的!
好象都没有用了
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from dbo.test where id='''+combobox1.text+'''');
adoquery1.Open;
edit1.Text := adoquery1.Fieldbyname('id').asstring;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
adoconnection1.Open;
end;这个代码绝对在我 D6+Win2000ad 上通过
按照大家上面给你的方法是一定可以得到BH的,我估计你一定是在什么地方有清空这个Edit的动作,然后在给这个Edit赋值以后,又触发了这个清空的动作,你可以按步调试,看看究竟有没有这个可能!