delphi中case of问题
我想实现判断ComboBox1中内容是‘人事部',财务部'还是技术部',从而保存他们各自的编号pid到数据库中去。代码如下:那里错了?如何实现a:=ComboBox1.t...
我想实现判断ComboBox1中内容是‘人事部',财务部'还是技术部',从而保存他们各自的编号pid到数据库中去。代码如下:那里错了?如何实现
a:= ComboBox1.text;
case a of
'人事部': ADOTable1.FieldByName('pid').AsString:= 1;
'财务部': ADOTable1.FieldByName('pid').AsString:= 2;
'技术部': ADOTable1.FieldByName('pid').AsString:= 3;
i:=ComboBox1.ItemIndex; 报错Incompatible types:'string' and 'Integer'
case i of 报错Ordinal type required
0: ADOTable1.FieldByName('pid').AsString:= 1; 报错Incompatible types:'string' and 'Integer'
1: ADOTable1.FieldByName('pid').AsString:= 2; 同上
2: ADOTable1.FieldByName('pid').AsString:= 3; 同上 展开
a:= ComboBox1.text;
case a of
'人事部': ADOTable1.FieldByName('pid').AsString:= 1;
'财务部': ADOTable1.FieldByName('pid').AsString:= 2;
'技术部': ADOTable1.FieldByName('pid').AsString:= 3;
i:=ComboBox1.ItemIndex; 报错Incompatible types:'string' and 'Integer'
case i of 报错Ordinal type required
0: ADOTable1.FieldByName('pid').AsString:= 1; 报错Incompatible types:'string' and 'Integer'
1: ADOTable1.FieldByName('pid').AsString:= 2; 同上
2: ADOTable1.FieldByName('pid').AsString:= 3; 同上 展开
2个回答
展开全部
您的case a of
'人事部':
'财务部':
'技术部':
是不对呀,case a of 这个的a只能是整型数字呀!您可以这样做,用ComboBox1.ItemIndex属性来做:
i:= ComboBox1..ItemIndex;
case i of
0: ADOTable1.FieldByName('pid').AsString:= '0';//对应***部
1: ADOTable1.FieldByName('pid').AsString:= '1';//对应人事部
2: ADOTable1.FieldByName('pid').AsString:= '2';//财务部
3: ADOTable1.FieldByName('pid').AsString:= '3';//技术部
----------------------------------------------
针对您的补充,回答:
问题补充:i:=ComboBox1.ItemIndex; 报错Incompatible, types:'string' and 'Integer'//没有定义i,您必须先定义i:integer;
case i of 报错Ordinal type required
0: ADOTable1.FieldByName('pid').AsString:= 1; 报错Incompatible types:'string' and 'Integer'// 用‘’把1括起来,因为是字符串的。
1: ADOTable1.FieldByName('pid').AsString:= 2; 同上// 用‘’把2括起来,因为是字符串的。
2: ADOTable1.FieldByName('pid').AsString:= 3; 同上// 用‘’把3括起来,因为是字符串的。
'人事部':
'财务部':
'技术部':
是不对呀,case a of 这个的a只能是整型数字呀!您可以这样做,用ComboBox1.ItemIndex属性来做:
i:= ComboBox1..ItemIndex;
case i of
0: ADOTable1.FieldByName('pid').AsString:= '0';//对应***部
1: ADOTable1.FieldByName('pid').AsString:= '1';//对应人事部
2: ADOTable1.FieldByName('pid').AsString:= '2';//财务部
3: ADOTable1.FieldByName('pid').AsString:= '3';//技术部
----------------------------------------------
针对您的补充,回答:
问题补充:i:=ComboBox1.ItemIndex; 报错Incompatible, types:'string' and 'Integer'//没有定义i,您必须先定义i:integer;
case i of 报错Ordinal type required
0: ADOTable1.FieldByName('pid').AsString:= 1; 报错Incompatible types:'string' and 'Integer'// 用‘’把1括起来,因为是字符串的。
1: ADOTable1.FieldByName('pid').AsString:= 2; 同上// 用‘’把2括起来,因为是字符串的。
2: ADOTable1.FieldByName('pid').AsString:= 3; 同上// 用‘’把3括起来,因为是字符串的。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
case a of 这个的a只能是整型数字
i:integer;
begin
i:=ComboBox1.ItemIndex;
case i of
0: ADOTable1.FieldByName('pid').AsString:= 1;
1: ADOTable1.FieldByName('pid').AsString:= 2;
2: ADOTable1.FieldByName('pid').AsString:= 3;
end;
end;
i:integer;
begin
i:=ComboBox1.ItemIndex;
case i of
0: ADOTable1.FieldByName('pid').AsString:= 1;
1: ADOTable1.FieldByName('pid').AsString:= 2;
2: ADOTable1.FieldByName('pid').AsString:= 3;
end;
end;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询