你这个得到的是字符串
begin
combobox1.items.add(query1.fieldbyname('dw_id').asstring
+' '+query1.fieldbyname('dwmc').asstring);
query1.next;
end;
而这个要求的是整型值能不出错吗?
sql.add('select * from table2 where dw_id=:dw_id');
parambyname('dw_id').asinteger:=
strtoint(trim(copy(combobox1,1,pos(' ',combobox1.text))));
begin
combobox1.items.add(query1.fieldbyname('dw_id').asstring
+' '+query1.fieldbyname('dwmc').asstring);
query1.next;
end;
而这个要求的是整型值能不出错吗?
sql.add('select * from table2 where dw_id=:dw_id');
parambyname('dw_id').asinteger:=
strtoint(trim(copy(combobox1,1,pos(' ',combobox1.text))));
怎么样在combobox里显示dw_id
出错原因就在这句。
当你pos返回-1时,也就是,没有‘ ’,strtoint('')肯定会出错
即使pos返回不是-1,如果‘ ‘前的字符串不能转化为一个数字的话,也会出错
还有一个没回答阿?就是
怎么样在选择一个内容后,在combobo里只显示dw_id呢
text:=copy(combobox1,1,pos(' ',combobox1.text))
conbobox的style应为csDropDown
然后得到纪录,为什么输入一个没有的dw_id就出错呢,请问怎么解决
parambyname('dw_id').asinteger:=
strtoint(trim(copy(combobox1,1,pos(' ',combobox1.text))));
combobox1.text若沒有空格,那麼返回-1;再copy;再StrToInt是肯定有錯誤的
StrToIntdef能屏蔽,不過我不知道你為甚麼把所有“dw_id,dwmc”显示在combobox里?,所以後來這個:
2)
还有怎么样在选择一个内容后,在combobo里只显示dw_id呢
我也就不知你是何意思
用Try..except就可以屏掉
在combobo里只显示dw_idcombobox1.items.add(query1.fieldbyname('dw_id').asstring
+' '+query1.fieldbyname('dwmc').asstring);
改为:
combobox1.items.add(query1.fieldbyname('dw_id').asstring
);
出错原因就在这句。
当你pos返回-1时,也就是,没有‘ ’,strtoint('')肯定会出错
即使pos返回不是-1,如果‘ ‘前的字符串不能转化为一个数字的话,也会出错
同意