private void ShowSelf()
        {
            string sql = "select nickname,faceid,sex,age,Loginpwd,friendshippolicyid,[name],starid,bloodtypeid from USers where id = " + UserHelper.id;
            using (DataTable dt = DBHelper.GetData(sql))
            {
                picFace.Image=ilFaces.Images[int.Parse(dt.Rows[0]["faceid"].ToString())];
                picFace.Tag = int.Parse(dt.Rows[0]["faceid"].ToString());
                txtId.Text = UserHelper.id;
                txtAge.Text = dt.Rows[0]["age"].ToString();
                txtNickName.Text = dt.Rows[0]["nickname"].ToString();
                cmSex.Text = dt.Rows[0]["Sex"].ToString();
                if (!(dt.Rows[0]["name"] is DBNull))
                {
                    txtName.Text = dt.Rows[0]["name"].ToString();
                }
                if (!(dt.Rows[0]["starid"] is DBNull))
                {
                    cmStar.SelectedIndex = int.Parse(dt.Rows[0]["starid"].ToString());// 错误::InvalidArgument=“8”的值对于“SelectedIndex”无效。
参数名: SelectedIndex                }
                else
                {
                    cmStar.SelectedIndex = 0;
                }
                if (!(dt.Rows[0]["bloodtypeid"] is DBNull))
                {
                    cmBlood.SelectedIndex = int.Parse(dt.Rows[0]["bloostypeid"].ToString());
                }
                else
                {
                    cmBlood.SelectedIndex = 0;
                }
                switch (int.Parse(dt.Rows[0]["friendShippolicyid"].ToString()))
                {
                    case 1:
                        rdoAllow.Checked = true;
                        break;
                    case 2:
                        rdoQuestion.Checked = true;
                        break;
                    default:
                        rdoNoAllow.Checked = true;
                        break;
                }
                
            }
        }

解决方案 »

  1.   

    超出索引了。cmStar真的有9个以上的条目么?
      

  2.   

    cmStar.Items.Count 看看有没有9个。你这个错就是没有9个item,取索引8,越界了。
      

  3.   

      cmStar.SelectedIndex = int.Parse(dt.Rows[0]["starid"].ToString());
    从数据库中取出的starid字段的值,可能超出SelectedIndex的范围,检查一下。
      

  4.   

    这代码怎么看怎么像北大青鸟的经典教程MyQQ项目
      

  5.   

    InvalidArgument=“8”的值对于“SelectedIndex”无效。
    很显然你的错误是输出的是字符串"8"而不是int 类型的8,但是你的SelectedIndex只能接收int类型的8,无法接收字符串类型的"8"
      

  6.   


    抱歉,我看错了,你里面有个int类型的转换,那应该不是这个问题了
      

  7.   

    cmStar中的项如果是动态加载,就可能是调用顺序的问题
    第一步.cmStart加载内容
    第二部.调用ShowSelf()这种问题定个断点调试下不就知道了
      

  8.   

     cmStar.SelectedIndex =2;
    cmStar.SelectedIndex =4;
    cmStar.SelectedIndex =6;
    cmStar.SelectedIndex =8;
    加上这些句 试试看  有没有错误,单步一下 看看那句错了?
      

  9.   

    11楼说的对,你可以试下手动赋值SelectedIndex,看看是否成功,如果成功则是后边取值的问题,如果失败,看ComboBox是否有该索引。