FOR语句操作DataGridView无法改变多列数据

jstzcl007 2014-09-22 10:11:23
要将DataGridView表内2列数据重新赋值,用for语句写2行代码,但是运行后只能赋值一行数据。如果在FOR语句里只写一句代码,则所有行的某列数据都可以被赋值,难道FOR语句里只能写一行代码?
for (int int_row = 0; int_row < dataGridView2.RowCount; int_row++)
{
dataGridView2.Rows[int_row].Cells["xsbh"].Value = p_str_maxxsbh;
dataGridView2.Rows[int_row].Cells["xs"].Value = "0";
}

改用 foreach 语句也是这种情况
foreach (DataGridViewRow dr_row in dataGridView2.Rows)
{
dr_row.Cells["xsbh"].Value = p_str_maxxsbh;
dr_row.Cells["xs"].Value = "0";
}
...全文
81 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jstzcl007 2014-09-22
  • 打赏
  • 举报
回复
原来是这个表格用 this.sellinfoTableAdapter.Fill(this.shunfeng_csDataSet.sellinfo); this.sellinfoBindingSource.Filter = "xs='1'"; 和数据库连接,因为用了Filter = "xs='1'",造成用FOR语句时出错,我改了下就没问题了 for (int int_row = dataGridView2.RowCount-1; int_row >= 0; int_row--) { dataGridView2.Rows[int_row].Cells["xsbh"].Value = p_str_maxxsbh; dataGridView2.Rows[int_row].Cells["xs"].Value = "0"; } 谢谢大家
於黾 2014-09-22
  • 打赏
  • 举报
回复
断点跟的时候都正常,没有报错,没有跳出循环?
jstzcl007 2014-09-22
  • 打赏
  • 举报
回复
引用 4 楼 Z65443344 的回复:
只执行一行, 断点跟一下,看第二次循环的时候到底发生了什么
表格里有4行,我只运行第2行代码,居然只赋值了2行,还有2行没赋值,奇怪! 这样对应SQL数据库字段是char(1)类型
於黾 2014-09-22
  • 打赏
  • 举报
回复
只执行一行, 断点跟一下,看第二次循环的时候到底发生了什么
於黾 2014-09-22
  • 打赏
  • 举报
回复
你说只写一行没有问题,是怎么测试的 删除第二行,只执行第一行? 你删除第一行,只执行第二行,试过吗? 很可能是你第二行的列名不匹配,或者第二行匹配的列被隐藏了
sunny906 2014-09-22
  • 打赏
  • 举报
回复
代码没问题,断点调试看看for循环的执行情况
exception92 2014-09-22
  • 打赏
  • 举报
回复
目测 没问题,确定列名是正确的?还有就是 赋值的类型要与列类型一致;

110,539

社区成员

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

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

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