DataGridView单元格取数判断异常;Fill()速度太慢,请指教!

问题描述

问题1:我在对"是否加急"进行判断的时候,条件直接跳到for外面了,i++都不执行,也没有产生异常.我把"是否加急"的这个判断注释掉之后,可以进入到循环体.并执行i++....单步跟踪的时候,我在监视窗口可以输入:(bool)this.订单生产进度表DataGridView.SelectedRows[0].Cells["是否加急"].Value

可以看到值为falsetry{this.订单生产进度表DataGridView.SelectAll();for(inti=0;i<this.订单生产进度表DataGridView.Rows.Count&&(bool)this.订单生产进度表DataGridView.SelectedRows[i].Cells["是否完工"].Value==false&&(bool)this.订单生产进度表DataGridView.SelectedRows[i].Cells["是否加急"].Value==true;i++){//MessageBox.Show(System.DateTime.Now.ToLongTimeString());this.订单生产进度表DataGridView.Rows[i].DefaultCellStyle.BackColor=System.Drawing.Color.Yellow;}}catch{MessageBox.Show("行:232");}

请问有什么原因可能造成这种问题?问题2:我是通过VS2010的数据源进行的数据配制,datagridview也是直接从数据源到拖到控件的。现在发现一个性能问题,一张750行68列的表。系统的Fill时间需要近60秒.如果数据达到10000行,不管是更新还是排序都成了一个大问题。有什么在现有基础上的解决方法?this.订单生产进度表TableAdapter.Fill(this.patersonDataSet.订单生产进度表);

解决方案

解决方案二:
不进入,问题肯定出在那3个条件,for处断点,看看此时的3个条件,另外你为什么用SelectedRows呢,既然都全选了,就用Rows遍历看看第二个问题,取决于你的网络状况,数据库设计,数据量等,你要做的就是取优化这些问题,比如查询加索引,是否用分页技术,是否需要select*等
解决方案三:
68列难道都要显示?光光那个滚动条就要拖死人的。你就显示需要的十几个列的话,几百行数据不可能慢的。
解决方案四:
for(inti=0;i<this.订单生产进度表DataGridView.Rows.Count;i++){if((bool)this.订单生产进度表DataGridView.Rows[i].Cells["是否完工"].Value==false&&&&(bool)this.订单生产进度表DataGridView.Rows[i].Cells["是否加急"].Value==True){//MessageBox.Show(System.DateTime.Now.ToLongTimeString());this.订单生产进度表DataGridView.Rows[i].DefaultCellStyle.BackColor=System.Drawing.Color.Yellow;}}分页解决
解决方案五:
没异常抛出,监视窗口有值显示.但却直接跳到了for外面,太郁闷了!
解决方案六:
(bool)this.订单生产进度表DataGridView.SelectedRows[i].Cells["是否加急"].Value==true难道这个Value是false?
解决方案七:
解决了try{//this.订单生产进度表DataGridView.SelectAll();for(inti=1;i<this.订单生产进度表DataGridView.Rows.Count;i++){if((bool)(this.订单生产进度表DataGridView["是否完工",i].Value)==false&&(bool)this.订单生产进度表DataGridView["是否加急",i].Value==true){this.订单生产进度表DataGridView.Rows[i].DefaultCellStyle.BackColor=System.Drawing.Color.Yellow;}}}catch{MessageBox.Show("行:232");}

不知道为什么把if的条件加到for里面之后总是不能正确的执行。

时间: 2024-12-03 20:19:07

DataGridView单元格取数判断异常;Fill()速度太慢,请指教!的相关文章

关于bootstrap 单元格取值的问题

问题描述 关于bootstrap 单元格取值的问题 1C <thead> <tr class=""tb_tr""> <th data-field=""purchasePlanNumber"" data-formatter=""actionFormatter"">采购计划编号</td> <th data-field="&quo

vb.net datagridview 单元格点击事件的问题

问题描述 vb.net datagridview 单元格点击事件的问题 我想点击改变入出力的值,点击初始化时的入出力会变成1,再点击变成女数值2,还要使 入出力一行的checkbox可以点击选择和取消.怎样做到datagridview中header数值的变化和checkbox的选中与取消 解决方案 [VB.NET]关于datagridview的两个问题![VB.NET]关于datagridview数据绑定菜鸟问题!! 解决方案二: http://bbs.csdn.net/topics/36018

设置DataGridView单元格的数据类型

问题描述 如何设置DataGridView单元格的数据类型 解决方案 解决方案二:没明白你的意思.解决方案三:设置DataGridView单元格的数据类型?你想做什么..解决方案四:dgvparent.Rows[i].Cells["ColHUB1PERCENT"].ValueType=typeof(String);

DataGridView单元格显示GIF图片

本文转载:http://home.cnblogs.com/group/topic/40730.html DataGridView单元格显示GIF图片 gifanimationindatagrid.rar     4.自定义显示DataGridView列(行头显示行号与图标,同一单元格显示图片也显示文字)TestDataGridViewRowStyle2.rar  

DataGridView单元格合并

本文章转载:http://www.cnblogs.com/xiaofengfeng/p/3382094.html 图: 代码就是如此简单 文件下载:DataGridView单元格合并源码   也可以参考: http://www.cnblogs.com/liuke209/archive/2006/11/28/463023.html

还是一个单元格取值问题,恳求给个回答。

问题描述 winform中datagridview中的一列(比如说是第三列)已动态绑定到access数据库长整型数据列能正常显示.问题如何将这列中的某单元格(比如说第三行的)的值赋给一个长整型变量,不要告诉我赋给字符串哟,因为后面还有运算. 解决方案 解决方案二:可以强制转换类型呀解决方案三:怎么转,我转不了呀解决方案四:intj=(int)(datagridview1[0,3].value)解决方案五:不行错误1"System.Windows.Forms.DataGridViewCell&qu

datagridview 单元格 所在行问题

问题描述 我想问大家就是如何获取当前单元格所在的行啊 解决方案 解决方案二:introw=this.datagridview.CurrentCell.RowIndex;解决方案三:datagridview1.CurrentCell.RowIndex;解决方案四:introw=datagridview.CurrentCell.RowIndex;MessageBox.show(""+row);解决方案五:可以将以下代码写在SelectIndexChanged事件里introw=this.d

datagridview单元格的背景颜色如何设置

问题描述 想让单元格的前四行未一个颜色比如蓝色,接下来四行为另一个颜色比如白色,再接下来四行又为蓝色,循环.就是想让四行四行的区分开 解决方案 解决方案二:重绘单元格---解决方案三:能不能具体一下?不会哎解决方案四:引用2楼longyue11的回复: 能不能具体一下?不会哎 没在windows下,我也忘了哪个事件了,我只能大概说说datagridview有单元格绘制事件的,你找找事件列表里事件名字带"paint"的看看然后在单元格绘制事件里,事件参数里应该是能获取到行号和列号的,根据

怎样设置datagridview单元格的背景色

问题描述 datagridview中的单元个格,将这个单元格的背景颜色变为每四行一个颜色,就是前四行一个蓝色,再四行白色,在四行蓝色,在四行白色,就是想让四行和四行有区分.应该怎么做?请帮忙,谢谢!万分感谢!