连接好sqlserver数据库后 ,在Edit中输入某个字段的值,按下button来显示该字段值为Edit.text的所有记录,现在是如果输入edit中的text为空或在表中本来都有相对应的值的话,可以很容易的执行
...
if Eidt1.text='' then showmessage('请输入相对应的字段名称’)
else
begin
with ADOQuery1 do
begin
close;
SQl.clear;
SQL.add('select * from table where Project='+Edit1.text)
open;
end;
end;如果输入到Edit中的值非空且在DBgrid表中没有与之相等的 就要出现一个对话框提示
问题是怎样逐个的判断DBgrid中的字段project的值与Edit.text是否相等,也就是说怎样判断输入的Edit.text的值是否在Dbgrid中
是不是要用一个循环语句,具体怎样做,恳请各位好手指点。
谢谢
...
if Eidt1.text='' then showmessage('请输入相对应的字段名称’)
else
begin
with ADOQuery1 do
begin
close;
SQl.clear;
SQL.add('select * from table where Project='+Edit1.text)
open;
end;
end;如果输入到Edit中的值非空且在DBgrid表中没有与之相等的 就要出现一个对话框提示
问题是怎样逐个的判断DBgrid中的字段project的值与Edit.text是否相等,也就是说怎样判断输入的Edit.text的值是否在Dbgrid中
是不是要用一个循环语句,具体怎样做,恳请各位好手指点。
谢谢
能不能详细一点啊
那你可以这样写代码:
var s:string;
begin
s:='Project='''+edit1.text+'''';
adoquery1.filter:=s;
adoquery1.filtered:=true;
end;
就是在你现有的数据集中过滤你要的数据,而不是在数据库表中查询这样的...
with ADOQuery1 do
begin
close;
SQl.clear;
SQL.add('select * from table where Project='+Edit1.text)
open;
if RecordCount > 0 then
showmessage('有纪录')
else showmessage('没纪录');
end;
为什么不采用locate呢?
if Locate('Project',(Edit1.text),[loCaseInsensitive]) then
表示有,并且定位到这个记录上,
else 没找到
元旦马上到了,祝愿楼上各位朋友在新的一年里 工作取得更大的成绩 学习取得更大的进步 健康永远相伴。。
谢谢 to : Rocx007(),非常感谢啊 有一些问题还要向您请教,对Locate(),还不了解 参数[loCaseInsensitive]含义是?
谢谢