Winform中DataGridView显示速度慢的问题

TonyWu66 2008-05-27 10:26:56
代码如下:

using (SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=MasterDB;Persist Security Info=True;User ID=sa"))
{
SqlDataAdapter da = new SqlDataAdapter("select * from GoodsMain", con);
DataSet ds = new DataSet();
da.Fill(ds);
this.dataGridView1.DataSource = ds;
this.dataGridView1.DataMember = ds.Tables[0].TableName;
}

问题:
DataGridView

移动滚动条
Resize
从其他程序使用Alt+Tab切回此程序

都会感觉到它在重绘(一格一格/一行一行的绘制出来),就像动画片一样(如果使用DataGrid,不会感觉到动画效果,所有的数据都是一起显示出来的)
不知道各位是怎么样处理这样的问题的.谢谢!
...全文
2110 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
linchenrr 2011-08-12
  • 打赏
  • 举报
回复
我也遇到这个问题,之前是好好的,昨晚使用.NET卸载工具清除了.NET,然后再重新安装,再装了几个.net补丁之后就这样了 估计是这个造成的
WIKESOFT 2010-07-18
  • 打赏
  • 举报
回复
我觉得20楼跟我遇到的情况是一样的。。
我遇到的问题,
但是有没有人知道怎么解决这个问题。。
因为我现在的Winform程序已有20000多行的代码了
要进行修改的话。要花很大的精力和时间。。所以。请问有没有什么解决的办法啊
无限关注此贴

我的问题说明
写了一个程序使用开发工具winform,在使用DataGridView控件,在我的机子上面运行一点问题都没得,不管数据有多少行,都不行影响性能,在同事的机子上运行(Amd Athlon 5400+,GF9500的独显) ,拖动滚动条时感觉数据刷新很慢,(只有很少的几条数据),数据一直在从上往下闪屏,这时候如果再来操作这些数据,基本上是机子就痴呆了,程序运行起来慢得要死,打开任务管理器,CPU使用率直接50%以上,我本人的机子比同事的机子配置要差得多,都不会出现这种情况,但是不知道为什么样会出现这样子的一种情况。
问题描述完了,请高人指点。
tevr005 2010-01-08
  • 打赏
  • 举报
回复
检查下硬盘是不是有了坏道
朔雪罡风 2010-01-05
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 zyclove2008 的回复:]
我也遇到了同楼上同样的问题,在配置好的机子上也无法很快的显示出来,总是一屏一屏的感觉。
关注中......
[/Quote]
也算我一个,同样的问题,T7250,2G,NV9300-512MB显卡,C重绘datagridview时CPU占用率超高,有人会优化显卡吗?
zyclove2008 2009-06-14
  • 打赏
  • 举报
回复
我也遇到了同楼上同样的问题,在配置好的机子上也无法很快的显示出来,总是一屏一屏的感觉。
关注中......
liuyu0318 2009-05-19
  • 打赏
  • 举报
回复
我也遇到同样的问题,很久了,一直无法解决。

不是程序的原因,我已经把程序在我能找到的机器上都测试了一下,
1、在配置很糟糕(4、5年前的赛扬,集成显卡)的机器上运行很正常,所有数据刷新在瞬间完成。
2、在虚拟机上也正常。
3、在普通机器上(E4600,2GB内存,256显存显卡)运行正常。
4、在配置很好的机器上(E8500,8GB内存,1GB或者512显存显卡)~~~反而出问题,刷新慢,CPU占用高,
一个一个单元格的慢慢出现,看着都着急。
5、第4点用的测试机器为10台,所有机器做其他事情都是正常的(例如玩CS或者魔兽世界)。

分析是DataGridView的显示设置与最新的显卡不兼容,结果使用CPU进行绘制,但是我不知道怎么解决,
而且就算用CPU绘图也不会差到这个样子啊。
九章落地 2008-05-28
  • 打赏
  • 举报
回复
我一直用DataGridView,绑定数据有时几万笔,没出现楼主所说的问题.

你可找另一台电脑试试,执行你的程序,或在那台电脑重做一次,看是否还出现慢的问题.
TonyWu66 2008-05-28
  • 打赏
  • 举报
回复
回7楼,重新建立了一个项目.拉了一个DataGridView-未修改任何属性,使用向导来填充数据(无手动编写代码,所以不存在代码问题),不管是几千笔记录还是几笔记录.都还是会一样的效果.不知道您使用DataGridView就没遇到这样的情况吗?
回8楼,不是记录多少造成的问题.
感谢各位.
starlessnt 2008-05-28
  • 打赏
  • 举报
回复
如果上面的方法还不能解决,
那你就用分页的方式来显示吧...

九章落地 2008-05-28
  • 打赏
  • 举报
回复
你可以删掉DataGridView重做一次试试:
1.删除掉现有的DataGridView
2.拖一个新的DataGridView,不改变任何属性,不手动创建列.
3.直接把数据绑定到DataGridView,看速度是否还是很慢.
若这样还很慢,就是你的电脑问题
shmily_heihei 2008-05-28
  • 打赏
  • 举报
回复
建议你去整理下硬盘。。。

或者重装下你用的软件。。

不过你的电脑配置真另我佩服。。。

小弟的配置只有你的一半都米出现过你上诉问题。。。





TonyWu66 2008-05-28
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 shmily_heihei 的回复:]
建议你换换内存跟CPU。。
单独运行DataGridView这个控件也慢,不过14楼说嘚也有一定道理。。
[/Quote]
大哥..服你了.要真是这两个的问题的话.我就真郁闷X了..
TonyWu66 2008-05-28
  • 打赏
  • 举报
回复
Processor: Intel(R) Core(TM)2 Duo CPU T7250 @ 2.00GHz (2 CPUs)
Memory: 2046MB RAM
Page File: 1076MB used, 2861MB available
DirectX Version: DirectX 9.0c (4.09.0000.0904)
Display Card name: NVIDIA GeForce 8600M GT
Display Memory: 512.0 MB
....
shmily_heihei 2008-05-28
  • 打赏
  • 举报
回复
建议你换换内存跟CPU。。
单独运行DataGridView这个控件也慢,不过14楼说嘚也有一定道理。。
TonyWu66 2008-05-28
  • 打赏
  • 举报
回复
大哥.你还真狠噢....用毛爷爷的头像和称谓 :-)
tigerleq 2008-05-28
  • 打赏
  • 举报
回复
呵呵,电脑嘛
一个也总有那么几天,不爽
重起,天气过热,显卡温度过高,
现在的电脑,是越来越好了,热量也越来越大,
结果我们公司的pIII的机子(高频率的)
比新的电脑的效果,速度还要好
TonyWu66 2008-05-28
  • 打赏
  • 举报
回复
感谢ydsunny.换另一台电脑就正常了..不过还是不知道什么原因造成本机这样的情况(没中毒,256独显)郁闷
Patrick_wangzd 2008-05-28
  • 打赏
  • 举报
回复
sql 一次挑出很多筆, gridview 能否設定先只拿可看到的那些筆資料,然後通過 scroll 捲動時再拿資料下來f
lweasy 2008-05-28
  • 打赏
  • 举报
回复
我怎么没出现这种情况咧,天天用啊?~
TonyWu66 2008-05-27
  • 打赏
  • 举报
回复
感谢各位回复
1.数据量少的时候也会有相同的情况
2.AutoSizeColumnsMode AutoSizeRowsMode属性设NONE无法改善此状况
3.CPU使用率会比不使用DataGridView时高出60%-70%,不是在读取数据,而是在处理DataGridView.因为我使用DataGrid就不会高这么多.

希望高手指点.谢谢!
加载更多回复(5)

110,535

社区成员

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

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

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