在delphi中怎样把一个edit.text和数据库里值进行比较?

 我来答
liu55721
2012-04-04 · TA获得超过922个赞
知道大有可为答主
回答量:1861
采纳率:100%
帮助的人:871万
展开全部
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 先生已经告诉你数据类型的转换方法,你可以参考一下
追问
谢谢,但本人是delphi新手,你写的我不是很懂,我可以用ADOquery来代替fr_sjmk.TB_yhb_js吗?还有glymm是什么意思?   呵呵 丢丑了。。。
追答
可以!这段代码经过删节,glymm是一个布尔变量。但在这里没有用。直接这样写就行了:
if mmzf=edit1.text then //这就是你要的比较
jcglysfcz:=true; //如果两者相等,函数返回值将为真
wolfy1016
2012-04-04 · TA获得超过244个赞
知道小有建树答主
回答量:353
采纳率:0%
帮助的人:290万
展开全部
strtoint(edit.text) 和数据库里的数值类型值比较。变成整数后比较
或strtofloat(edit.text) 可以是小数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zengm3_sany
2012-04-03
知道答主
回答量:30
采纳率:0%
帮助的人:15.2万
展开全部
按照你的风格,我的回答是:把数据库里的值读出来然后就可以比较了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式