在delphi中怎样把一个edit.text和数据库里值进行比较?
3个回答
展开全部
function Tsf_mai.jcglysfcz:boolean; //检查系统管理员是否存在
var
i,j:word;
mmzf:string;
glymm:boolean;
begin//fr_sjmk:数据模块名;TB_yhb_js:数据集组件名;我喜欢用ADOdataset组件,它同时具备查询组件和表组件的功能,很好用
glymm:=false;
fr_sjmk.TB_yhb_js.Close;//先关闭
fr_sjmk.TB_yhb_js.CommandText:='';//清空原有SQL语句,下一句,装入新的SQL语句
fr_sjmk.TB_yhb_js.CommandText:='select id,gjzsy,gjzmx,byz from gjzb where gjzsy = ''czyxm'' ';
fr_sjmk.TB_yhb_js.Open;//打开它,就可以读数据了
if fr_sjmk.TB_yhb_js.RecordCount <>0 then//检测一下,打开的数据集是否有数据记录,这是必要的,不然没有数据,数据库会自己报错,麻烦
begin
for i:=0 to fr_sjmk.TB_yhb_js.RecordCount-1 do//这时for循环来逐条读取数据
begin
mmzf:=fr_sjmk.TB_yhb_js.FieldValues['byz'];//这里只读取了表中BYZ字段的数据
if mmzf=edit1.text then //这就是你要的比较
glymm:=true; //如果两者相等,函数返回值将为真
end;
end;
jcglysfcz:=glymm;
end;
比较时要注意数据类型,wolfy1016 先生已经告诉你数据类型的转换方法,你可以参考一下
var
i,j:word;
mmzf:string;
glymm:boolean;
begin//fr_sjmk:数据模块名;TB_yhb_js:数据集组件名;我喜欢用ADOdataset组件,它同时具备查询组件和表组件的功能,很好用
glymm:=false;
fr_sjmk.TB_yhb_js.Close;//先关闭
fr_sjmk.TB_yhb_js.CommandText:='';//清空原有SQL语句,下一句,装入新的SQL语句
fr_sjmk.TB_yhb_js.CommandText:='select id,gjzsy,gjzmx,byz from gjzb where gjzsy = ''czyxm'' ';
fr_sjmk.TB_yhb_js.Open;//打开它,就可以读数据了
if fr_sjmk.TB_yhb_js.RecordCount <>0 then//检测一下,打开的数据集是否有数据记录,这是必要的,不然没有数据,数据库会自己报错,麻烦
begin
for i:=0 to fr_sjmk.TB_yhb_js.RecordCount-1 do//这时for循环来逐条读取数据
begin
mmzf:=fr_sjmk.TB_yhb_js.FieldValues['byz'];//这里只读取了表中BYZ字段的数据
if mmzf=edit1.text then //这就是你要的比较
glymm:=true; //如果两者相等,函数返回值将为真
end;
end;
jcglysfcz:=glymm;
end;
比较时要注意数据类型,wolfy1016 先生已经告诉你数据类型的转换方法,你可以参考一下
追问
谢谢,但本人是delphi新手,你写的我不是很懂,我可以用ADOquery来代替fr_sjmk.TB_yhb_js吗?还有glymm是什么意思? 呵呵 丢丑了。。。
追答
可以!这段代码经过删节,glymm是一个布尔变量。但在这里没有用。直接这样写就行了:
if mmzf=edit1.text then //这就是你要的比较
jcglysfcz:=true; //如果两者相等,函数返回值将为真
展开全部
strtoint(edit.text) 和数据库里的数值类型值比较。变成整数后比较
或strtofloat(edit.text) 可以是小数
或strtofloat(edit.text) 可以是小数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
按照你的风格,我的回答是:把数据库里的值读出来然后就可以比较了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询