日期:2014-05-18  浏览次数:20986 次

dgv取值时 未将对象引用设置到对象的实例
公司网不给力,上传不了图片!
定义List<int> RowIndex=new List<int>();//记录dgv所做更改行的索引
取值时
C# code

                            foreach (int row in RowIndex)
                            {
                                if (row >= 0)
                                {
                                    string partid = dgv_UserManage.Rows[row].Cells[1].Value.ToString();
                                    string logid = dgv_UserManage.Rows[row].Cells[2].Value.ToString();
                                    string pass = dgv_UserManage.Rows[row].Cells[3].Value.ToString();
                                    string name = dgv_UserManage.Rows[row].Cells[4].Value.ToString();
                                    string sql = string.Format("update UDP_User set User_Name='{0}',User_Pass='{1}',User_PartId='{2}' where User_LogId='{3}'", name, pass, partid, logid);
                                    SqlHelper.sqlExcute(sql);
                                }
                            }
这里,无论当row等于多少时都报错!索引未越界!,求解答!

------解决方案--------------------
是 Cell 还是 Row 越界
在 if (row >= 0)
下面加两行
var rw = dgv_UserManage.Rows[row];
var cell = rw.Cells[4];
看看这两行能不能执行过去
------解决方案--------------------
dgv_UserManage.Rows数量与row索引不符,调试吧
------解决方案--------------------
错了,是这样
C# code
string partid = Convert.ToString(dgv_UserManage.Rows[row].Cells[1].Value);
string logid = Convert.ToString(dgv_UserManage.Rows[row].Cells[2].Value);
string pass = Convert.ToString(dgv_UserManage.Rows[row].Cells[3].Value);
string name = Convert.ToString(dgv_UserManage.Rows[row].Cells[4].Value);
//......

------解决方案--------------------
dgv_usermanage.rows[row].Cells["用列明不可以吗?不用考虑下标是不是超出界限"].value