2015-11-30 88 views
-3

我想查找datagridview中的最大值行并将其更改为color在datagridview中查找最大值行并更改其颜色

int maxValue = Convert.ToInt32(dt.Compute("max(Score)", string.Empty)); 

for (int i = 0; i < dt.Rows.Count; i++)` 

{ 
    string clr = dt.Rows[0]["Score"].ToString(); 

    if (clr == maxValue.ToString())  
    { 
    showdata1.Rows[i].DefaultCellStyle.BackColor = Color.Green; 
    } 
} 

我的代码错误。

enter image description here

+0

在代码中的哪一行会得到此异常? –

+0

这不是问题。这是一个代码转储。 – Rob

回答

0

你迭代的DataTable和使用DataTable迭代循环的指数以获得GridView行。 GridView有页面,当你试图按照DataTable的索引访问GridView特定行时,你会得到异常。例如,你有记录在DataTable但只有在GridView然后当你在11迭代,并试图通过循环变量i访问第十一行GridView你会得到例外。

使用页码和页面大小来获取循环开始和结束索引。

for (int i = PageIndex*PageSize; i < (PageIndex+1)*PageSize); i++)