日期:2014-05-20  浏览次数:21960 次

指定的参数已超出有效值的范围。
C# code

                    System.Data.SqlClient.SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter(cmd);
                    DataSet ds = new DataSet();
                    da.Fill(ds);

                    dataGridView1.DataSource = ds.Tables[0]; //执行到这一句发生以下错误



指定的参数已超出有效值的范围。
参数名: rowIndex

奇怪的是这个错误用Try捕获不到。调试时,如果我在dataGridView1.DataSource = ds.Tables[0]上设置断点,直接继续,不会发生错误。

有谁遇到过?帮帮忙。

------解决方案--------------------
这个rowIndex指的是DataGridView当中的Rows的Index,越界的可能有两种,一种是这个rowIndex在某个时机小于0,另一种是rowIndex大于等于DataGridView.RowCount。因此,不知道你除了设置DataGridView的DataSource属性以为,还设置了哪些属性?从StackTrace来看,不是你的程序出错,是设置给DataGridView的DataTable比较特殊,Table的Rows跟DataGridView绘制过程时候不一致造成的。我很感兴趣。
------解决方案--------------------
NET环境下的未处理异常(unhandled exception )的解决方案