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();
}
}


这样子不行,直接报错
错在哪里??
...全文
292 6 打赏 收藏 转发到动态 举报
写回复
用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里做也可以啊。
*调整导出及打印的格式与显示一致;合计行,详细参见第10条修正功能,全部源码及示例。 * 文 件 名:DataGridViewEx.cs * 创 建 人:明振居士 * Email:nzj.163@163.com qq:342155124 * 创建时间:2010-06-01 * 最后修改时间:2012-1-19 增加第10条所示的功能;修改了头超过26的错误,导出excel为数组方式,速度更快,导出的单元格设置为文本格式。 * 标 题:用户自定义的DataGridView控件 * 功能描述:扩展DataGridView控件功能 * 扩展功能: * 1、搜索Search(); 有两个同明方法,参数不同 F3为快捷键继续向下搜索 * 2、用TreeView HeadSource 来设置复杂的标题样式,如果某个节点对应的显示隐藏,请将该节点Tag设置为hide,隐藏的排位置与绑定数据元位置对应,树叶节点的顺序需要与结果集的顺序一致 * 3、通过反射导出Excel,无需引用com组件,方法ExportExcel() ,不受数的限制,表头同样可以导出,AutoFit属性设置导出excel后是否自动调整单元格宽度 * 导出内容支持自定义的:Title List Header List Footer,支持在设计时的设定,窗口关闭时Excel资源自动彻底释放 * 4、可以自己任意设定那些显示及不显示,通过调用方法SetColumnVisible()实现。 * 5、设置标题SetHeader(),设置永远可见AlwaysShowCols(),设置暂时不可见HideCols() * 注意,当使用了TreeView作为复杂Header时,不要使用本方法,Header显示的内容根据treeview内容而显示 * 6、宽度及顺序的保存SaveGridView(),加载LoadGridView() * 7、支持所见即所得的打印功能,举例如下 * private void button5_Click(object sender, EventArgs e) { DGVPrinter printer = new DGVPrinter(); printer.PrintPreviewDataGridView(DataGridViewEx1); } * 8、自定义合并行与,行合并用 MergeRowColumn 属性,合并用MergeColumnNames属性,都可以定义多个 * 9、行标号的设置 bool ShowRowNumber; * 10、增加最后一行的汇总行,支持的聚合函数,参见http://msdn.microsoft.com/zh-cn/library/system.data.datacolumn.[removed]v=VS.100).aspx * 假设对id显示“合计”字符,avgPrice进行平均,total显示合计,则对ComputeColumns增加三行内容:id,合计:;avgPrice,Avg(avgPrice);total,Sum(total) * 如果需要对进行格式控制,请实现beforeShow事件 * 增加了导出和打印对应的支持,所见即所得的对齐方应用于式导出及打印。
开发环境为vs2012 C#源码及完全样例 此版本为2012.2.24日更新版本,更新内容为 * 最后修改时间:2012.2.24 增加了汇总信息的自定义控制属性,参见功能描述12 * 2012.2.23 修改了过多时父标题不显示的问题,重新写了算法,修改了标题头重叠及不能换行的问题,参见说明11. 总功能举如下: /**************************************************************************************************** * Copyright (C) 2012 明振居士 版权没有,任意拷贝及使用,但对使用造成的任何后果不负任何责任,互相开源影响,共同进步 * 文 件 名:DataGridViewEx.cs * 创 建 人:明振居士 * Email:nzj.163@163.com qq:342155124 * 创建时间:2010-06-01 * 最后修改时间:2012.2.24 增加了汇总信息的自定义控制属性,参见功能描述12 * 2012.2.23 修改了过多时父标题不显示的问题,重新写了算法,修改了标题头重叠及不能换行的问题,参见说明11. * 2012-1-19 增加第10条所示的功能;修改了头超过26的错误,导出excel为数组方式,速度更快,导出的单元格设置为文本格式。 * 标 题:用户自定义的DataGridView控件 * 功能描述:扩展DataGridView控件功能 * 扩展功能: * 1、搜索Search(); 有两个同明方法,参数不同 F3为快捷键继续向下搜索 * 2、用TreeView HeadSource 来设置复杂的标题样式,如果某个节点对应的显示隐藏,请将该节点Tag设置为hide,隐藏的排位置与绑定数据元位置对应,树叶节点的顺序需要与结果集的顺序一致 * 3、通过反射导出Excel,无需引用com组件,方法ExportExcel() ,不受数的限制,表头同样可以导出,AutoFit属性设置导出excel后是否自动调整单元格宽度 * 导出内容支持自定义的:Title List Header List Footer,支持在设计时的设定,窗口关闭时Excel资源自动彻底释放 * 4、可以自己任意设定那些显示及不显示,通过调用方法SetColumnVisible()实现。 * 5、设置标题SetHeader(),设置永远可见AlwaysShowCols(),设置暂时不可见HideCols() * 注意,当使用了TreeView作为复杂Header时,不要使用本方法,Header显示的内容根据treeview内容而显示 * 6、宽度及顺序的保存SaveGridView(),加载LoadGridView() * 7、支持所见即所得的打印功能,举例如下 * private void button5_Click(object sender, EventArgs e) { DGVPrinter printer = new DGVPrinter(); printer.PrintPreviewDataGridView(DataGridViewEx1); } * 8、自定义合并行与,行合并用 MergeRowColumn 属性,合并用MergeColumnNames属性,都可以定义多个 * 9、行标号的设置 bool ShowRowNumber; * 10、增加最后一行的汇总行,支持的聚合函数,参见http://msdn.microsoft.com/zh-cn/library/system.data.datacolumn.[removed]v=VS.100).aspx * 假设对id显示“合计”字符,avgPrice进行平均,total显示合计,则对ComputeColumns属性增加三行内容:id,合计:;avgPrice,Avg(avgPrice);total,Sum(total) * 如果需要对进行格式控制,请实现beforeShow事件 * 增加了导出和打印对应的支持,所见即所得的对齐方应用于式导出及打印。 * 11、标题头自动换行,默认设置为每个标题头行高为22,如果设置的字体更大,将自动进行计算。如果需要多行显示,请根据需要调节ColumnHeaderHeight属性, * 其估算方法为预计的标题头层数乘以22,或层数乘以设置的字体高度。 * 12、针对第10条功能,增加汇总信息的自定义控制属性,汇总字体SummaryFont,汇总字体颜色SummaryFontColor,汇总背景色SummaryBGColor,边框与整个表格边框一致 ****************************************************************************************************/

110,529

社区成员

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

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

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