datagridview怎么循环一条一条添加数据。

问题描述

现在我是绑定数据源,但是数据超过10万就很卡。需要6秒。但是客户不要分页,我用循环一条一条添加,时间是快了点。但是还是很慢。有没有别的方法。求各路大神帮忙。

解决方案

解决方案二:
10万不分页,我看你还是先生成个空表格,然后用户滚动条拖到哪里,就更新哪里的值,其他的不用更新
解决方案三:
为什么要循环呢?
解决方案四:
十万不分页。。。。。卧槽
解决方案五:
引用1楼Z65443344的回复:

10万不分页,我看你还是先生成个空表格,然后用户滚动条拖到哪里,就更新哪里的值,其他的不用更新

然后添加数据的时候可以考虑使用dgv.Rows.AddRange直接添加一个数据包,而不是一条一条的添加
解决方案六:
TO:1L。如果用户一直拉到最低端,那不还是一样嘛。
解决方案七:
引用楼主w4587435的回复:

现在我是绑定数据源,但是数据超过10万就很卡。需要6秒。但是客户不要分页,我用循环一条一条添加,时间是快了点。但是还是很慢。有没有别的方法。求各路大神帮忙。

可以做个隐藏分页,做个自定义的滚动条然后滚动的时候换数据,每次只显示一页固定行数的内容
解决方案八:
To:4L增加一个数据包比循环添加还要慢。添加数据包相当于直接绑定数据源。全部添加。很忙。大概需要七秒。
解决方案:
Quote: 引用6楼f281186676f的回复:

如果直接拉到最低端那不还是一次加载完。应该还是卡吧。
解决方案:
引用3楼f281186676f的回复:
十万不分页。。。。。卧槽

卧槽
解决方案:
Quote: 引用8楼w4587435的回复:

没办法。客户需求。
解决方案:
引用5楼w4587435的回复:
TO:1L。如果用户一直拉到最低端,那不还是一样嘛。

那就不要把赋值的代码写到滚动条拖动事件里,而是写到timer里之类的这样用户如果一次拖动的过多,中间的代码不需要执行,只赋值他看到的部分就好了
解决方案:
Quote: 引用101楼Z65443344的回复:

好的。我试一下。谢谢。
解决方案:
[Quote:引用11楼Z65443344的回复:]有代码吗?没写出来。
解决方案:
客户不懂技术,但是你自己在实现的时候必须得考虑这个问题一次加载所有数据肯定是不对的,你可以看看qq空间的滚动加载(山寨的谁的就不说了)的思路比如:你可以将一万条(甚至分得再小点2000条)加载到内存绑定其中的100行到界面(界面上始终只有100行)滚动条拉过(OnScroll事件),就去内存中取相应位置的数据刷新界面,如果内存中没有就去查数据放到内存另外datagridview的虚拟模式(也是基于共享行技术)也可适用大数据
解决方案:
一次性将数据都读取出来确实不太实际。可以显示一个等待提示框,在数据读取的时候提示用户已经等待多久了,数据全部读取出来后关闭提示框。
解决方案:
Quote: 引用14楼dongxinxi的回复:
有代码吗?跟着你的思路没写出来。
解决方案:
dgv.DataSource=table;

搜完dt然后绑定在dgv上应该就1-2秒吧。哪里要6秒。除非你列非常多。更新的话。更新table然后重新绑一下就好了。
解决方案:

解决方案:
引用16楼w4587435的回复:

Quote: 引用14楼dongxinxi的回复:
有代码吗?跟着你的思路没写出来。

代码是死的,人是活的
解决方案:
使用DataGridView呈现绑定数据库数据示例privatevoidForm1_Load(objectsender,EventArgse){SqlDataAdaptersda=newSqlDataAdapter(//创建SqlDataAdapter对象"select*fromtb_student","server=WRET-MOSY688YVW\MRGLL;database=db_test;Trusted_Connection=true");DataSetds=newDataSet();//创建数据集DataSet对象sda.Fill(ds);//调用SqlDataAdapter对象的Fill()方法填充数据集dataGridView1.DataSource=ds.Tables[0];//将数据集绑定到DataGridView1控件}
解决方案:
可以使用虚拟模式配合分页加载来实现,DataGridView.VirtualMode,http://msdn.microsoft.com/zh-cn/library/system.windows.forms.datagridview.virtualmode(v=vs.110).aspx不过10万条数据说实话真的没有意义,客户他有本事10万条数据一条一条看吗,我看是客户在故意为难你们吧,撑爆他的内存。
解决方案:
我记得gridview有个滚动条事件,滚动的时候去加载所需数据,为了防止影响用户滚动的体验,最好在事件中另外开线程去取数据并绑定。
解决方案:
这么多数据不卡就怪了

时间: 2024-12-30 22:00:57

datagridview怎么循环一条一条添加数据。的相关文章

uitableview-实现类似微信的一条状态中添加回复的功能

问题描述 实现类似微信的一条状态中添加回复的功能 各位大神,我想开发类似微信朋友圈里,一条状态中显示回复的功能,是通过在UITableViewCell中添加UITableView的方式实现的吗? 具体有没有类似的代码可以参考?谢啦 再就是,一条回复中会显示,:"张三回复李四:" 张三和李四这两个名字可以点击,这是怎么实现的? 求各位大神指导啊!

java怎么在循环时在抛出异常的同时又能跳到循环的下一条

问题描述 java怎么在循环时在抛出异常的同时又能跳到循环的下一条 如题:比如 for(int i=0;i<str.length();i++){ if(i==1){ throw new ApiException("dsf"); //continue; } } 解决方案 看你的目标. 1.查看异常信息.你可以捕获异常,写日志. 2.方法调用的地方处理异常.用list把异常信息存储起来,return. 解决方案二: try { } catch (Exception e) { // T

VB6.0关于菜单条控件添加图片的问题

问题描述 VB6.0关于菜单条控件添加图片的问题 用什么属性设置可以给VB6.0 的菜单条控件增加一个图片logo,就像ie浏览器的那样,一个地球转的.但是我只要添加静态的就可以 解决方案 用setmenuitembitmaps方法试试看 解决方案二: 关于VB6.0菜单

请问往数据库添加一条数据,但是有一条字段总是添加不上去,是什么情况

问题描述 请问往数据库添加一条数据,但是有一条字段总是添加不上去,是什么情况 public String addTransOnOffTime() throws Exception { if (transOnOffTime == null) { response.getWriter().write(jsonMapper.toJson(FAIL)); } else { // transOnOffTime.getTransBasicConfig().setTransIdCard(transIdCard

oracle10-关于oracle在一条语句向多个表添加数据

问题描述 关于oracle在一条语句向多个表添加数据 我这里有t1,t2,t3三个表,当根据t3和t2中的某些条件做出的判断成立时,向t1和t2中添加数据,能不能这么写 insert all into t1(t1.column1,t1.column2) values(A,B) into t2(t2.column1,t2.column2) select t3.column1, t3.column2 from t3 where not exists (select 1 from t2,t3 wher

C# 如何将一条字符数组的数据,每以有规律的将数据显示在ListView控件的每行每列中

问题描述 C# 如何将一条字符数组的数据,每以有规律的将数据显示在ListView控件的每行每列中 现在ListView控件中有三行三列数据,我通过方法将这三行三列数组变成一条字符串,每列数据以逗号隔开,每行以分号隔开,然后保存到数据库中.现在我要将这条字符串的数据,重新按着原来的格式显示在ListView控件中.比如 ListView控件的第一行:23 张三 男 第二行: 21 李四 男 第三行三列分别是 20 王五 男.现在我将这三行三列的数据以字符串的格式保存到数据库中.string st

dataset-C#控件DataGridView 用逐行添加数据的方式 加载速度奇慢无比 求解答

问题描述 C#控件DataGridView 用逐行添加数据的方式 加载速度奇慢无比 求解答 大概1000条 16列 如果把数据放到Dataset中然后绑定DataSource 加载基本是瞬间完成,速度很快. 但是如果 foreach{ DataGridViewRow dgvr = this.dataGridView1.Rows[this.dataGridView1.Rows.Add()]; dgvr.Cells["productName"].Value = ps.Name; .....

c# listview或datagridview显示动态添加的数据,效果是局部(刷新)添加数据,添加新数据同时对操作原显示数据无影响

问题描述 c#listview或datagridview显示动态添加的数据,效果是局部(刷新)添加数据,添加新数据同时对操作原显示数据无影响 解决方案 解决方案二:你说的添加新数据是重新绑定,还是在原基础上增加行?解决方案三:引用1楼dongxinxi的回复: 你说的添加新数据是重新绑定,还是在原基础上增加行? 增加行例如:listview展示如下:1abc2def3ghi一段时间数据库有新数据1abc2def3ghi4jkl5mnp解决方案四:无非就是比较两条数据是非"一样"嘛傻瓜式

使用ImportRow无法导入第一条记录的完整数据,仅能导入主键信息,有谁遇到过?如何解决?

问题描述 谁遇到过这样的问题:两个同样架构的表(MDTable是MdDs.Tables("HMDWD")通过缺省视图转换后的表),现在对MDTable数据处理完后,要导入到MdDs.Tables("HMDWD")进行数据库更新,代码如下:但导入之后,数百条记录就是第一条记录数据不完整,其他都正确,不知什么原因?以下是调试信息:可以看到,除了第1.2列主键信息一样外,导入后其他列全为"System.DBNull:{System.DBNull}".请