cbYwlb 是combox, 是不是写法有问题啊?好久不写代码了,请大家不要扔鸡蛋?//窗体加载
        private void pz_Load(object sender, EventArgs e)
        {
            DataTable table = new DataTable();
            data.SelectSQL(ref table, "select t.ywlbid, t.ywlbmc from yw t order by px");
            cbYwlb.DataSource = table;  //table 数据有2条
            cbYwlb.DisplayMember = "ywlbmc";
            cbYwlb.ValueMember = "ywlbid";                        
            cbYwlb.SelectedIndex = 0;  //想在加载后默认选中一条,可这里就报错了,跟踪这里 item.count=0
           。。
        }

解决方案 »

  1.   

    字段名正确吗?绑定的VALUE和TEXT
      

  2.   

    item.count=0 当然会报错说明table  是空的 
      

  3.   

    table  我看了确实有值啊
      

  4.   

    应该是table没有检索到数据,不然你的写法是对的,
    你可以加一个判断  
     DataTable table = new DataTable();
                DataColumn c = new DataColumn("A");
                DataColumn c1 = new DataColumn("A2");
                table.Columns.Add(c);
                table.Columns.Add(c1);
                for (int i = 0; i < 4; i++)
                {
                    DataRow r = table.NewRow();
                    r[0] = i.ToString();
                    r[1] = "name" + i.ToString();
                    table.Rows.Add(r);            }
                this.comboBox1.DataSource = table;
                this.comboBox1.DisplayMember = "A2";
                this.comboBox1.ValueMember = "A";
                if(comboBox1.Items.Count>0)
                { 
                this.comboBox1.SelectedIndex = 0;}
      

  5.   

    if(cbYwlb.count!=0)
    cbYwlb.SelectedIndex = 0;
    cbYwlb中就没有item...
    写成这样最好
    try{
       cbYwlb.SelectedIndex = 0;
    }
    catch
    {}
      

  6.   

    中间还有那么多空白 应该是其他代码造成了你的cbYwlb 内容变了 你看下
    cbYwlb.DataSource = table;  //table 数据有2条 
    执行后item.count的值
      

  7.   

    看来没有答案了,是不是我放在 Load 有问题啊,很是奇怪,呵呵
      

  8.   

    不是 
    你看下
    在cbYwlb.DataSource = table;  //table 数据有2条 
    设个断点跟踪下
    如果这句执行完item.count =2 那么就是后面的代码把cbYwlb重新初始化了
    如果item.count =0 且table 数据有2条  那么就不知道了 这种情况应该不可能