在做一个权限管理的模块:用注释的判断语句,checkbox1的checked始终是true.
跟他们的fielbyname fieldvalues类型是否有关,(它们都为string) 跟踪了,到CheckBox1.Checked:=true 其值为 false? if ADOQuery2.FieldByName('用户编号').AsString <>'' then
//ADOQuery2.FieldValues['用户编号'] <>'' then
CheckBox1.Checked:=true
else
checkbox1.Checked:=False;
end;
部分代码如下: With ADOQuery2_LBsh do
begin
close;
sql.Clear;
sql.Add('select 用户编号 from QX where (用户编号=(select 用户编号 from QXYH where 姓名='''+combobox1.Text+''' )) and (权限名称='''+CheckBox1.caption+''')');
open;
if FieldByName('用户编号').AsString<>'' then FieldValues
CheckBox1.Checked:=true
else
CheckBox1.Checked:=false;
跟他们的fielbyname fieldvalues类型是否有关,(它们都为string) 跟踪了,到CheckBox1.Checked:=true 其值为 false? if ADOQuery2.FieldByName('用户编号').AsString <>'' then
//ADOQuery2.FieldValues['用户编号'] <>'' then
CheckBox1.Checked:=true
else
checkbox1.Checked:=False;
end;
部分代码如下: With ADOQuery2_LBsh do
begin
close;
sql.Clear;
sql.Add('select 用户编号 from QX where (用户编号=(select 用户编号 from QXYH where 姓名='''+combobox1.Text+''' )) and (权限名称='''+CheckBox1.caption+''')');
open;
if FieldByName('用户编号').AsString<>'' then FieldValues
CheckBox1.Checked:=true
else
CheckBox1.Checked:=false;
FieldByName() TField ,虽然比较烦,但是在字段比较多,而且又有可能出现空值的情况下使用是最好的,在使用时这个方法时,必须指定所返回的值为何类型,如AsString、AsInteger等,这样的类型转换可以将空值转换成长度为的0字符串或数据为0的数字型值
//ADOQuery2.FieldValues['用户编号'] <>'' then
CheckBox1.Checked:=true
else
checkbox1.Checked:=False;
end;
用ADOQuery2.FieldByName('用户编号').AsString吧,要好一些,如果是NULL也会返回空串
FieldByName() 会转化查询的值,会把空格去掉