请帮我看一下,程序那哪里写错了,为什么dbgrid不能显示结果(100分)

  • 主题发起人 jin_liang_s
  • 开始时间
J

jin_liang_s

Unregistered / Unconfirmed
GUEST, unregistred user!
我的源码是

procedure TForm1.Button1Click(Sender: TObject);
var str_sql:string;
begin
str_sql:='select text1,text2,text3,text4 from huifangbiao';
query1.Close;
query1.SQL.Clear ;
query1.SQL.Add(str_sql);
query1.Prepare ;
query1.Open;

if query1.RecordCount >0 then
begin
dbgrid1.Columns.Items[0].FieldName:='text1';
dbgrid1.Columns.Items[1].FieldName:='text2';
dbgrid1.Columns.Items[2].FieldName:='text3';
dbgrid1.Columns.Items[3].FieldName:='text4';
end

end;

我在 sql explorer 中使用那句sql语句可查询出3条记录 ,但在dbgrid1中却没有一条记录的显示,这是为什么?如何解决?求各位高手帮忙
 
你把dbgrid1指向query1对应的数据源了吗?
这个才是主要的。
 
绑定没有啊,tdbgrid-->tdatasource-->tadoquery
 
看样子就是没绑定了~~
 
dbgrid-->datasource-->adoquery要静态(设计时)设定好或者是动态绑定的。
 
procedure TForm1.Button1Click(Sender: TObject);
var
str_sql:string;
i: integer;
begin
str_sql:='select text1,text2,text3,text4 from huifangbiao';
query1.Close;
query1.SQL.Clear ;
query1.SQL.Add(str_sql);
query1.Prepare ;
query1.Open;

for i := 1 to query1.RecordCount do
begin
dbgrid1.Columns.Items[0].FieldName:='text1';//这里可能要区分是何种类型??
dbgrid1.Columns.Items[1].FieldName:='text2';
dbgrid1.Columns.Items[2].FieldName:='text3';
dbgrid1.Columns.Items[3].FieldName:='text4';
query1.next;
end

end;试试
 
应该是二楼三楼说的问题
 
谢谢大家的帮忙了
 
顶部