procedure TForm7.ds1DataChange(Sender: TObject; Field: TField); var temp1:string; begin temp1:=edit1.text; if (temp1 <>'') then begin ADOQuery3.close; ADOQuery3.sql.clear; ADOQuery3.sql.add('select * from 表1 where temp1'); ADOQuery3.open; end; ds1.DataSet:=ADOQuery3; DBGrid1.DataSource:=ds1; end; end. 我想根据EDIT1.TEXT所显示的数据,通过搜索然后显示在DBGrid上贴出错误描述, 另外'select * from 表1 where temp1' 啥意思,对数据库不怎么熟悉 ADOQuery3.sql.add('select * from 表1 where '+temp1); 这是ds1 Data值生变化才会触发此事件
若想根据edit内容改变即时反映出结果,就应该放在edit onchange事件中
还有这个在运行时会出错的: select * from 表1 where temp1
可改为: select * from 表1 where kk='+Quotedstr(temp1) select * from 表1 where temp1 没有参数的,这样写不对吧 ADOQuery3.sql.add('select * from 表1 where 字段名称 = '''+temp1+''' ');
ADOQuery3.sql.add('select * from 表1 where 表1某字段='+temp1); sql语句有问题 检查这里数据库看看(,where 表1某字段='+temp1);