DataGridView一共有三行
每行两个数据
读取前两行时没问题
到第三行的第二个数据的时候就会出现 nul值  
这是为什么????
这个bug怎么解决啊 ,痛苦

解决方案 »

  1.   


    for (int i = 0; i < yundi_xxxl.Rows.Count-1; i++)
                {
                    xz.XZ_ID = Maticsoft.DBUtility.DbHelperSQL.job_no("XL" + i.ToString());
                    xz.mainID = textBox2.Text.Trim();
                    xz.TDH = txt_tidanhao.Text.Trim();
                    xz.XZ_XIANGXING = yundi_xxxl.Rows[i].Cells["xiangxing"].Value.ToString();
                    MessageBox.Show(xz.XZ_XIANGXING);
                    try
                    {
                        string num = yundi_xxxl.Rows[i].Cells["xiangliang"].Value.ToString();
                        MessageBox.Show(num);
                        xz.XZ_Num = Convert.ToInt32(num);
                    }
                    catch(Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                        return;
                    }
                    bll.Add(xz);
                }
      

  2.   

    最好先判断是否为Null后在取值,不然容易报错
      

  3.   

    判断下 yundi_xxxl.Rows[i].Cells["xiangxing"].Value 是否为 null
    var value = yundi_xxxl.Rows[i].Cells["xiangxing"].Value;
    xz.XZ_XIANGXING = value == null ? "" : value.ToString();
    或者
    xz.XZ_XIANGXING = string.Format("{0}", yundi_xxxl.Rows[i].Cells["xiangxing"].Value);还可以试试xz.XZ_XIANGXING = yundi_xxxl.Rows[i].Cells["xiangxing"].Value ?? "";
      

  4.   

    csdn个人主页打不开,我想上传图片的
      

  5.   

    这是前两个数据这个40的就是第三行的数据遍历到这第三行的时候就出现了这样的错误,断点调试就是value为null,前两行都没错的
      

  6.   

    第三行没有的话,肯定是你代码少查询了一行
    for (int i = 0; i < yundi_xxxl.Rows.Count-1; i++)
    改成这个呢
    for (int i = 0; i <=yundi_xxxl.Rows.Count-1; i++)
      

  7.   

    进行判断处理如果为null的话,数值型为0 ,字符型为空字符string num = string.IsNullOrEmpty(yundi_xxxl.Rows[i].Cells["xiangliang"].Value.ToString())?"0":yundi_xxxl.Rows[i].Cells["xiangliang"].Value.ToString();
    xz.XZ_Num = Convert.ToInt32(num);其他部分自己处理。
      

  8.   

    这里的值如果是3的话,就必须是3,不能自己修改为0的,因为下面的一个DataGridView需要用到这个值
    我就要疯了
      

  9.   

    LZ,本来是个简单问题,你的方法好些也没有问题,方便的话,你把代码发给我,我来调试一下!
        [email protected]
      

  10.   

    重新建了一个项目,还是这些东西,调试成功,是哪儿的错误,控件冲突会不会出现这样的bug????
      

  11.   

    解决方法添加了一句代码//int last = dgv_xxxl.Rows.Count - 1;
                //dgv_xxxl.Rows[last].Selected = true;
                dgv_xxxl.EndEdit();
    //如果还是出错误,就把上面的代码去掉注销
      

  12.   

    DataGridView一共四行,有用的数据就只是前三行,第一行的index是0,要遍历这有用的这三行,就需要循环时不能大于2可以等于,0,1,2  就是小于4-1  明白了否