dataGridview如何动态设置某个列的值

火星大能猫 2011-06-07 04:09:02
如有列名为FemaleRanges的列(上线限),
我想将它的值设置为另外两列(上限列和下限列)的值合并
笨办法就是for循环遍历
有没有更好的办法??

private void dgvCheckItem_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (dgvCheckItem.Columns[e.ColumnIndex].Name.Equals("FemaleRanges") && e.Value is string)
{
int rindex = e.RowIndex;
dgvCheckItem.Rows[rindex].Cells["FemaleRanges"].Value = dgvCheckItem.Rows[rindex].Cells["RangeMin"].Value.ToString() + "-" + dgvCheckItem.Rows[rindex].Cells["RangeMax"].Value.ToString();
}
}


这样子不行,直接报错
错在哪里??
...全文
298 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
火星大能猫 2011-07-18
  • 打赏
  • 举报
回复
散分了.
linjianwei 2011-06-07
  • 打赏
  • 举报
回复
private void dgvCheckItem_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (e.rowIndex > -1 && dgvCheckItem.Columns[e.ColumnIndex].Name.Equals("FemaleRanges") && e.Value is string)
{
int rindex = e.RowIndex;
dgvCheckItem["emaleRanges",rindex].Value = dgvCheckItem["RangeMin",rindex].Value.ToString() + "-" + dgvCheckItem["RangeMax",rindex].Value.ToString();
}
}

这样应该没问题的,如果有,那可能就是RangeMin,RangeMax列出现空值
火星大能猫 2011-06-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 linjianwei 的回复:]

报什么错呀,怎么不贴出来
[/Quote]
“System.StackOverflowException”类型的未经处理的异常出现在 System.Windows.Forms.dll 中。
当前线程处于堆栈溢出状态,因此无法计算表达式的值。}
确保你没有处于无限递归
linjianwei 2011-06-07
  • 打赏
  • 举报
回复
报什么错呀,怎么不贴出来
火星大能猫 2011-06-07
  • 打赏
  • 举报
回复
 for (int i = 0; i < dgvCheckItem.Rows.Count-1; i++)
{
dgvCheckItem.Rows[i].Cells["FemaleRanges"].Value = dgvCheckItem.Rows[i].Cells["RangeMin"].Value.ToString() + "-" + dgvCheckItem.Rows[i].Cells["RangeMax"].Value.ToString();
}

这样子是可以的,实在不行的话只能写在sql语句里了
lpingz 2011-06-07
  • 打赏
  • 举报
回复
报错应该是格式不一致, 你的FemaleRanges列在数据库中如果不是字符串类型的那么操作肯定会报错。

想合并,那就在查询的时候,在sql里做也可以啊。

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧