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

这条语句该如何改写?
我用语句Select Name,Job,Invalid from table1 查询数据,显示在DataGridView(dgvWeight)中,一切正常。我在dgvWeight_CellPainting()事件中用了以下语句也不出问题,如:

if (Convert.ToInt32(dgvWeight[3, e.RowIndex].Value) == 1) //3引用的是Invalid字段
{
  ......
}

但是一旦字段很多的话还要一个一个的数,这样要引用其中的某一个字段就很容易数错,最好能使用如下语句:
if (Convert.ToInt32(dgvWeight["Invalid", e.RowIndex].Value) == 1)
{
  ......
}

但尝试后报错。请问各位谁知道应该如何改写才对呢?谢谢!

------解决方案--------------------
单步调试是程序员的基本功,这种问题在微软在线帮助上有很多类似的例子,你可以结合这些例子进行调试
------解决方案--------------------
dgvWeight[3, e.RowIndex].Value
这里一个是列索引值,一个是行索引值。
你用的"Invalid"是字符串,当然错了!
------解决方案--------------------
dgv.Rows[e.RowIndex].Cells["列名"].vaule;

不知道可不可以你试试。
------解决方案--------------------
if (e.ColumnIndex == dgv.Columns["Invalid"].Index) //确定列
{
if (Convert.ToInt32(e.Value) == 1)
{
......
}
}