求“优化数据”的方法!!!

zk911 2009-09-18 09:50:24
我写了一个程序,每次执行完添加操作后都要调用一下sql中的查询语句更新一次datagridview,当数据多的时候就显示的特别慢,有什么方法能添加完数据后快速的现实datagridview的更新吗?

我的“添加”代码段如下:

if (M_Str_tempt == "add")
{
string strResult = fwgllei.insert_table(fw);
if (strResult == "ok")
{
MessageBox.Show("添加记录成功");
}
}



con.ConDatabase();

SqlDataAdapter da = new SqlDataAdapter("SELECT fwbh AS 房屋编号, htbh AS 编号, xingming AS 承租人姓名, chengqu AS 所在城区, jiexiang AS 街巷, xqmingcheng AS 小区名称, loudong AS 所在楼栋, danyuan AS 所在单元, fanghao AS 房号, louceng AS 楼层, jianfangniandai AS 建房年代, chanquanlaiyuan AS 产权来源, jiegou AS 房屋结构,fangwuleixing AS 房屋类型, fangxiang AS 房屋朝向, jianshu AS 房屋间数, jianzhumianji AS 建筑面积, shiyongmianji AS 使用面积,biaozhunfangjia AS 标准租金, tiaojiehoufangjia AS 调节后租金, yuezujine AS 月租金额, yuanyuezujin AS 原月租金额, jiexianghao AS 年租金, youfujianmian AS 优抚减免, chaobiaojiazu AS 超标加租, qizuriqi AS 起租日期, tuizuriqi AS 退租日期, pjhm AS 票据号码, diduan AS 收租日期, shoujiaonianyue AS 收交日期, shoujiaojine AS 收交金额, qianzuqiriqi AS 欠租起日期, qianzuzhiriqi AS 欠租止日期, qianzuzongyueshu AS 欠租总月数, qianzuzongjine AS 欠租总金额, sfzh AS 身份证号, lxdh AS 联系电话,weixiuzywtjz AS 收款人,qianzubeizhu AS 备注 FROM tb_fwgl where zglzlx='直管房'", con.conn);

DataTable dt = new DataTable();
da.Fill(dt);
this.dataGridView1.DataSource = dt.DefaultView;



如果把这段查询语句写成sql存储过程会快一些吗?

求路人指点一下 谢谢!!!
...全文
57 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zk911 2009-09-18
  • 打赏
  • 举报
回复
还有什么方法能让dataGridView快速显示大量数据吗?

收集一下 学习之用
zk911 2009-09-18
  • 打赏
  • 举报
回复
winform 的datagridview的分页原理是一次把数据都读到本地

如果这样的分页也没有什么意思了吧 那岂不是还一样的慢?
zk911 2009-09-18
  • 打赏
  • 举报
回复
谢谢楼上的回答

但是我的程序是winform 不是b/s 的

winform也能做成分页显示吗?是不是挺繁琐的

上一个帖子有人说只改datagridview的行 先不做重新读取 这样方法感觉也可采取吧
  • 打赏
  • 举报
回复
就好像长跑,跑1000米和跑999米哪一个会快点到达?这是废话,我们肯定说是999米的到达得快。但是,在实际使用软件时,这种差别是不值得你纠缠在这个上面花精力的,你的精力应该花在其它方面。

对于你的程序来说,zglzlx应该是有索引的,并且应该尽可能地只查询一页(例如30条)数据给控件,而不是全部记录都查询到程序内存中再由控件来分页。
  • 打赏
  • 举报
回复
[Quote=引用楼主 zk911 的回复:]
如果把这段查询语句写成sql存储过程会快一些吗?
[/Quote]

大多数人都误以为这个“快”会有多大效果。其实你自己测试一下,这个“快”只是一个理论结果,而不是明显的结果。
zhounengbin 2009-09-18
  • 打赏
  • 举报
回复
你可以把每次的添加操作先放到内存里面去!每次添加或删除都操作内存里面相应在的datatable!最后点保存的时候再一次性把datatable保存到数据库中去!

110,538

社区成员

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

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

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