怎样 把 查询出的数据结果,一次读到控件中:
procedure TF_student.TabSheet4Show(Sender: TObject);
begin
with adoqsjingli do
begin
Close;
SQL.Clear;
SQL.Text:='select * from stu_jingli where sjno='+quotedstr(edit4.Text);
open;
//if not adoqstijian.eof then
//begin
maskedit14.Text:=adoqsjingli.FieldByName('rudata').asstring;
maskedit15.Text:=adoqsjingli.FieldByName('bidata').asstring;
edit22.Text:=adoqsjingli.FieldByName('schooladdress').asstring;
//doqstijian.next;
//end; //
//while not adoqs.eof do
//begin
maskedit16.text:=adoqsjingli.fieldbyname('rudata').asstring;
maskedit17.Text:=adoqsjingli.fieldbyname('bidata').asstring;
edit23.Text:=adoqsjingli.fieldbyname('schooladdress').asstring;
// qstijian.next;
//end;
end;
一表为学生经历表:学生号,入学时间,毕业时间,所在学校及见证人 等四个字段。
一个学生 都有 好几条,我想把结果放到 maskedit 中。
入学时间 毕业时间 所在学校及见证人
maskedit15 maskedit17 edit22
maskedit16 maskedit18 edit23
这样 依次排列:急。请教各位了。
procedure TF_student.TabSheet4Show(Sender: TObject);
begin
with adoqsjingli do
begin
Close;
SQL.Clear;
SQL.Text:='select * from stu_jingli where sjno='+quotedstr(edit4.Text);
open;
//if not adoqstijian.eof then
//begin
maskedit14.Text:=adoqsjingli.FieldByName('rudata').asstring;
maskedit15.Text:=adoqsjingli.FieldByName('bidata').asstring;
edit22.Text:=adoqsjingli.FieldByName('schooladdress').asstring;
//doqstijian.next;
//end; //
//while not adoqs.eof do
//begin
maskedit16.text:=adoqsjingli.fieldbyname('rudata').asstring;
maskedit17.Text:=adoqsjingli.fieldbyname('bidata').asstring;
edit23.Text:=adoqsjingli.fieldbyname('schooladdress').asstring;
// qstijian.next;
//end;
end;
一表为学生经历表:学生号,入学时间,毕业时间,所在学校及见证人 等四个字段。
一个学生 都有 好几条,我想把结果放到 maskedit 中。
入学时间 毕业时间 所在学校及见证人
maskedit15 maskedit17 edit22
maskedit16 maskedit18 edit23
这样 依次排列:急。请教各位了。
用 timer 应该可以,如果只是一次显示一遍容易的多,如果要循环,就要先把这个学生的信息存储下来,用数组或者链表都可以。
搞一个过程就行了。
procedure SetEditText(ADOQuery1: TADOQuery;aMaskEdit:TCustomEdit;bMaskEdit:TCustomEdit=nil;cMaskEdit:TCustomEdit=nil;dMaskEdit:TCustomEdit=nil);
begin
if aMaskEdit is TCustomEdit then
TCustomEdit(aMaskEdit).Text:=ADOQuery1.fieldByName('×××').AsString;
//其余的就不详细写了
end;---调用
procedure TForm1.Button1Click(Sender: TObject);
begin
if ADOQuery1.IsEmpty then Exit;
while not ADOQuery1.Eof do
begin
SetEditText(ADOQuery1,MaskEdit1,MaskEdit2,MaskEdit3);//-----此处对于MaskEdit的设置在于自己程序的控制,建议用控件数组
ADOQuery1.Next;
end;
end;
begin
...........//这里循环存放你的信息。
end;不过,非常不明白为什么要用那么多edit控件显示学生教育经历信息。