public partial class editbyview : Form
    {
        List<Friend> friends = new List<Friend>();
        public editbyview()
        {
            InitializeComponent();
            dataclass fd = new dataclass();
            friends = fd.SelectAll();
        }
       
        private void editbyview_Load(object sender, EventArgs e)
        {
            cmb2.DataSource = friends;
            cmb2.DisplayMember = "sName";
            cmb2.ValueMember = "iID";
            cmb2.SelectedIndex = 0;
        }              private void cmb2_SelectedIndexChanged(object sender, EventArgs e)
        {
            string id = cmb2.SelectedValue.ToString();
            
            foreach(Friend f in friends)
            {
                if (f.iID ==Convert.ToInt32( id))//这里有一个问题 说字符串格式不正确!!!
                {
                    txtid.Text = f.iID.ToString();
                    txtname.Text = f.sName;
                    txttel.Text = f.sTel;
                    txtmob.Text = f.sMob;
                    txtdanwei.Text = f.sDanwei;
                    txtadress.Text = f.sAdress;
                    txtqq.Text = f.sQQ;
                    txtemail.Text = f.sEmail;                     
                }
            }
        }

解决方案 »

  1.   

    在这断点 if (f.iID ==Convert.ToInt32( id))//这里有一个问题 说字符串格式不正确!!!
    这个id 是不是数字
      

  2.   

       string id = cmb2.SelectedValue.ToString();
    改成这样
       string id = cmb2.SelectedIndex.ToString();
      

  3.   

    检查一下 iID 字段里面装的都是 数字格式的字符串么?如果不是那就报错了。
      

  4.   

    可能是一开始combobox没有选择选项,id为-1
      

  5.   

    调试看一下这个 string id = cmb2.SelectedValue.ToString(); 得到的是数字还是其他的~
      

  6.   

    iID是不是有空格
     if (f.iID ==Convert.ToInt32( id.ToString().Trim())) 试试