请教这个功能如何实现啊(20分)

  • 主题发起人 主题发起人 topdelphi
  • 开始时间 开始时间
T

topdelphi

Unregistered / Unconfirmed
GUEST, unregistred user!
我的数据表有下面的字段,编号,姓名,年龄,
记录如下
编号 姓名 年龄
1 张三 15
2 王五 16
例如我在文本里输入编号1之后,后面两个文本就列出张三,15,输入2,
后面两个就列出王五和16来,
请教这个功能如何实现啊,
 
select * from tablename where 编号= 1
 
1、select * from table
2、 create tstringlist
tstringlist.addobject
3、tstringlist.indexof()
只适合于不经常变化的数据,上述方法速度快,但写代码多,可能还要继承类!
 
谢谢各位的回答,但是我的语句写在EDIT的ONChange事件里,但是出现了错误了,
说性质类型相反,STRING AND BOOLEAN,请教我要如何修改才能在在文本里输入编号1之后,
后面两个文本就列出张三,15,这个功能啊.
procedure TForm1.Edit1Change(Sender: TObject);
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from users where 编号'=inttostr(edit1.Text));
adoquery1.Open;
 
var
sSQL: string;
begin
sSQL:='select * from users where 编号='+''''+inttostr(edit1.Text)+'''';
end;
 
也不行啊,我跟着你写在这样,也出现的错误了,而且这条只是查询之后,记录只显示在DBGRID
里,但我的功能是要在插入编号记录的文本里,输入1后,后面的二个文本就显示张三,15,不用
让用户再重新输入啊,请指教,万急.
procedure TForm1.Edit1Change(Sender: TObject);
var
sSQL: string;
begin
sSQL:='select * from user_ids where 编号='+''''+inttostr(edit1.Text)+'''';
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.sql.Add(ssql);
adoquery1.Open;
 
with adoquery1 do
begin
if not IsEmpty then
begin
first;
while not Eof do
begin
// 在这里添加你要做的操作
FieldByName('姓名').asstring;
FieldByName('年龄').asstring;
next;
end;
end;
end;
 
不行啊,我在EDIT的ONCHEAN事件里照着上面所写,但是一开始,就将记录转到最后
一条了,没有我随意输入一个编号,后面就显示与这个编号相关的记录值来,
可以再比的例子我吗?我想了一个晚上也没有想出来啊。
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部