做界面的时候在界面上有两个按钮,点击按钮1的时候datagridview显示数据表Table的前面4行,按钮2显示后四行。
在datagridview绑定数据后按钮1设置后4行隐藏,按钮2设置前4行隐藏,来实现上面的功能,但是我单独点击按钮1或者按钮2时显示正常,连续点击按钮1和按钮2时后一个按钮处就会报错(先1后2或先2后1都会报错),我查找原因时发现点击后面那个按钮时dataGridViewX1.Rows.Count为0,我实在找不出原因,麻烦高手指点一下;代码如下:
按钮1和按钮2代码相同就是一个设置不同,代码如下:
//绑定数据
dataGridViewX1.Columns.Clear();
ocn.BindData("ports");
dataGridViewX1.DataSource = ocn.db_ds.Tables["ports"]; //设置全部可见
for (int i = 0; i < ocn.db_ds.Tables["ports"].Rows.Count; i++)
{
dataGridViewX1.Rows[i].Visible = true;
//此处报错说:索引超出范围。必须为非负值并小于集合大小。
} //设置不可见,按钮1时显示DAUID=1的行,按钮2时显示DAUID=2的几行。
CurrencyManager cm = (CurrencyManager)BindingContext[dataGridViewX1.DataSource];
cm.SuspendBinding();
OleDbDataReader odr = ocn.db_cmd.ExecuteReader();
int d = 0;
while (odr.Read())
{
if (Convert.ToInt32(odr["DAUID"].ToString()) != 1)
{
dataGridViewX1.Rows[d].Visible = false;
}
d++;
}
cm.ResumeBinding();
notSortable();//禁用排序
在datagridview绑定数据后按钮1设置后4行隐藏,按钮2设置前4行隐藏,来实现上面的功能,但是我单独点击按钮1或者按钮2时显示正常,连续点击按钮1和按钮2时后一个按钮处就会报错(先1后2或先2后1都会报错),我查找原因时发现点击后面那个按钮时dataGridViewX1.Rows.Count为0,我实在找不出原因,麻烦高手指点一下;代码如下:
按钮1和按钮2代码相同就是一个设置不同,代码如下:
//绑定数据
dataGridViewX1.Columns.Clear();
ocn.BindData("ports");
dataGridViewX1.DataSource = ocn.db_ds.Tables["ports"]; //设置全部可见
for (int i = 0; i < ocn.db_ds.Tables["ports"].Rows.Count; i++)
{
dataGridViewX1.Rows[i].Visible = true;
//此处报错说:索引超出范围。必须为非负值并小于集合大小。
} //设置不可见,按钮1时显示DAUID=1的行,按钮2时显示DAUID=2的几行。
CurrencyManager cm = (CurrencyManager)BindingContext[dataGridViewX1.DataSource];
cm.SuspendBinding();
OleDbDataReader odr = ocn.db_cmd.ExecuteReader();
int d = 0;
while (odr.Read())
{
if (Convert.ToInt32(odr["DAUID"].ToString()) != 1)
{
dataGridViewX1.Rows[d].Visible = false;
}
d++;
}
cm.ResumeBinding();
notSortable();//禁用排序
试试