当前位置:编程学习 > C#/ASP.NET >>

winform 中 combox中selectIndex的问题(在先等)

 DataSet ds=new DataSet()
 DataTable dt=new DataTable("result");//"result"中的数据是从数据库中取到的
 ds.Tables.add(dt);
 this.cboComodityNO.DataSource = ds.Tables["result"];
 this.cboComodityNO.DisplayMember = "merchid";
    为何在程序运行时,触发cboComStyle_SelectedIndexChanged时,
 MessageBox.show(cboComodityNO.SelectedIndex)取到的值总是为-1?为何呢?
请高手教教我,谢谢!在线等 --------------------编程问答-------------------- 调试一下:ds.Tables["result"].Rows.Count是否大于0 --------------------编程问答-------------------- 你直接new了一个ds和dt,有往里填充数据吗? --------------------编程问答-------------------- 应该不会:
除非
1、cboComodityNO中没有数据;
2、在cboComodityNO.SelectedIndex中又调用了其他的操作导致cboComodityNO.SelectedIndex改变了。
--------------------编程问答-------------------- 因为你cboComodityNO.items.count =0
要先付值。后才有索引! --------------------编程问答--------------------
引用 1 楼 keconghua 的回复:
调试一下:ds.Tables["result"].Rows.Count是否大于0


楼主确定绑定的数据源里面有数据吗 ?
然后还要确定绑定的字段和方法是否正确 --------------------编程问答-------------------- 可以通过给外面加一层
try
{}catch{}
的方式 跳过第一次的异常 


我是小菜鸟!   说的不好清见谅,   希望能够帮到你! --------------------编程问答--------------------
引用 2 楼 ojlovecd 的回复:
你直接new了一个ds和dt,有往里填充数据吗?

看你这点代码好象你的DATATABLE里没数据的啊?那combobox里肯定也是没数据的啊!所以返回值肯定是-1咯! --------------------编程问答-------------------- 我已经把数据库里面的数据在界面上面显示了,
我已经在用适配器对象填充了那个datatable,就是selectIndex取值为0,不知道什么原因
看了一个帖子有人在ASP中遇到这个问题的,用一个isPage什么方法,但是那个方法在winform中没有 --------------------编程问答--------------------
引用 3 楼 RonoTian 的回复:
应该不会: 
除非 
1、cboComodityNO中没有数据; 
2、在cboComodityNO.SelectedIndex中又调用了其他的操作导致cboComodityNO.SelectedIndex改变了。 


同意3楼观点,你快速监视一下就知道了
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,