首页 新闻 会员 周边

combobox绑定数据时,总是报数据类型转化失败问题

0
悬赏园豆:5 [待解决问题]

 
DataTable temp = null;


temp
= Fqueryall("2");
DataTable zclbTable
= new DataTable();
zclbTable.Columns.Add(
"name");
zclbTable.Columns.Add(
"value");
zclbTable.Rows.Add(
"所有类别", "0");
foreach (DataRow row in temp.Rows)
{
zclbTable.Rows.Add(row[
"zclbname"].ToString(), row["zclbid"].ToString());
}
this.comboBox1.DataSource = zclbTable;
comboBox1.DisplayMember
= "name";
comboBox1.ValueMember
= "value";

 

这段代码中,Fqueryall("2")函数返回的结果是DataTable

 

问题补充: 声明一下:temp中不是空的,而且,zclbname 和 zclbid都是有值的,没有一个是null,原来只把temp赋值给combobox的数据源就是正确的,这里仅仅是加了个字段所有类别,对应的value是‘0’
寒狐的主页 寒狐 | 菜鸟二级 | 园豆:433
提问于:2011-01-05 15:55
< >
分享
所有回答(4)
0

你单步调试一下,看看获取的temp数据中是否有空数据,整个方式没错,只可能在“row["zclbname"].ToString(), row["zclbid"].ToString()”出错,即把null转成字符串时出错。

魏志飞 | 园豆:285 (菜鸟二级) | 2011-01-05 18:24
0

我也遇到过类似问题,我的建议是,不要用DataTable进行绑定,你用List<string>进行绑定,一定没有问题。

   意思是说:把DataTable转化成List<string>

   要是不懂转的方法,请参见BaiDu

.NET快速开发框架 | 园豆:946 (小虾三级) | 2011-01-05 22:24
0

zclbTable.Rows.Add有参数要么是一个Row,要么是一个object[],所以一个改法是用New Row添加。

另外一个方法是zclbTable.Rows.Add(new object[]{row["zclbname"],row["zclbid"]});

邀月 | 园豆:25475 (高人七级) | 2011-01-06 15:41
0

foreach (DataRow row in temp.Rows)
{
DataRow dr = zclbTable.NewRow();
dr["name"]=row["zclbname"];
dr["value"]=row["zclbid"];
zclbTable.Rows.Add(dr);
}

 还有你调试看下是不是Add “所有类别”的那行代码有错。

manji | 园豆:633 (小虾三级) | 2011-01-20 16:51
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册