问题描述
DataSetds=newDataSet()DataTabledt=newDataTable("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楼观点,你快速监视一下就知道了