Foxtable(狐表)用户栏目专家坐堂 → 这段代码执行时非常慢,有没有优化些方法?


  共有4866人关注过本帖树形打印复制链接

主题:这段代码执行时非常慢,有没有优化些方法?

帅哥,在线噢!
有点蓝
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106650 积分:542433 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/12/25 16:46:00 [只看该作者]

使用sql更新

Dim cmd As New SQLCommand
cmd.CommandText = 
"update 专业录取线 As a,专业录取线 As b set a.物理组总_减一年低排=b.物理组总_低分排名,a.物理组总_减一年低同 = b.物理组总_低分同位 where a.院校代码=b.院校代码 And a.物理系列=b.物理系列 And a.专业代码=b.专业代码 And b.录取年度 = 2017 and a.院校代码 Is not null"
cmd.
ExecuteNonQuery()

cmd.CommandText = "update 专业录取线 As a,专业录取线 As b set a.物理组总_减二年低排=b.物理组总_低分排名,a.物理组总_减二年低同 = b.物理组总_低分同位 where a.院校代码=b.院校代码 And a.物理系列=b.物理系列 And a.专业代码=b.专业代码 And b.录取年度 = 2018 and a.院校代码 Is not null"
cmd.
ExecuteNonQuery()

 回到顶部
帅哥,在线噢!
有点蓝
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106650 积分:542433 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/12/25 16:47:00 [只看该作者]

这么大的数据量,建议使用外部数据库,加上必要的索引,会更快

 回到顶部
帅哥,在线噢!
hbfnmxb
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:536 积分:5948 威望:0 精华:0 注册:2008/9/7 20:15:00
  发帖心情 Post By:2020/12/25 18:29:00 [只看该作者]

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2020.5.29.8
错误所在事件:
详细错误信息:
Microsoft Jet 数据库引擎找不到输入表或查询 '专业录取线'。 确定它是否存在,以及它的名称的拼写是否正确。
但是明明有“专业录取线”这个表,为什么提示找不到?


如何“使用sql更新”,没弄懂!
[此贴子已经被作者于2020/12/25 18:44:47编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106650 积分:542433 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/12/26 8:28:00 [只看该作者]

内部表表名加上大括号

update {专业录取线} As a,{专业录取线} As b

 回到顶部
帅哥,在线噢!
hbfnmxb
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:536 积分:5948 威望:0 精华:0 注册:2008/9/7 20:15:00
  发帖心情 Post By:2020/12/26 13:22:00 [只看该作者]

谢谢老师,刚才试了一下,三年的数据不能调入到对应的列中,老师再给看一下,问题出在哪里?同一院校、同一专业在同一行里显示,2019年的(减一年)、2018年的(减二年)、2017年的(减三年)录取数据,目的是便于比较三年级的变化,是涨了,还是降了。现在三年的数据是在一列中,不便于比较,不直观。麻烦老师了

 回到顶部
帅哥,在线噢!
有点蓝
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106650 积分:542433 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/12/26 14:06:00 [只看该作者]

试了什么代码?

 回到顶部
帅哥,在线噢!
hbfnmxb
  17楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:536 积分:5948 威望:0 精华:0 注册:2008/9/7 20:15:00
  发帖心情 Post By:2020/12/26 14:58:00 [只看该作者]

试了下面的代码
Dim cmd As New SQLCommand
cmd.CommandText = 
"update {专业录取线} As a,{专业录取线} As b set a.物理组总_减一年低排=b.物理组总_低分排名,a.物理组总_减一年低同 = b.物理组总_低分同位 where a.院校代码=b.院校代码 And a.物理系列=b.物理系列 And a.专业代码=b.专业代码 And b.录取年度 = 2019 and a.院校代码 Is not null"
cmd.
ExecuteNonQuery()

cmd.CommandText = "update {专业录取线} As a,{专业录取线} As b set a.物理组总_减二年低排=b.物理组总_低分排名,a.物理组总_减二年低同 = b.物理组总_低分同位 where a.院校代码=b.院校代码 And a.物理系列=b.物理系列 And a.专业代码=b.专业代码 And b.录取年度 = 2018 and a.院校代码 Is not null"
cmd.
ExecuteNonQuery()

cmd.CommandText = "update {专业录取线} As a,{专业录取线} As b set a.物理组总_减一年低排=b.物理组总_低分排名,a.物理组总_减一年低同 = b.物理组总_低分同位 where a.院校代码=b.院校代码 And a.物理系列=b.物理系列 And a.专业代码=b.专业代码 And b.录取年度 = 2017 and a.院校代码 Is not null"
cmd.
ExecuteNonQuery()

 回到顶部
帅哥,在线噢!
有点蓝
  18楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106650 积分:542433 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/12/26 15:07:00 [只看该作者]

这个肯定不是测试的注真实代码,请从自己项目里复制发上来。

另外第一条sql年度改了,列名没改

 回到顶部
帅哥,在线噢!
hbfnmxb
  19楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:536 积分:5948 威望:0 精华:0 注册:2008/9/7 20:15:00
  发帖心情 Post By:2020/12/26 16:20:00 [只看该作者]

复制项目代码时,不让发帖。按照老师的提示,进行了修改。需要填充的各列,没有显示的内容,是内容不显示。运行的时候没有错误提示。产生了放弃的想法。关闭了项目。但心又不甘,于是把刚才计算过项目又打开了,奇怪的事出现了:需要填充的各列内容显示出来了,不知道是什么原因?现在的问题是,SQL的代码应该没问题,运行后不显示内容,需要关闭项目再打开项目内容才能显示出来,老师这是啥原因造成的?

 回到顶部
帅哥,在线噢!
有点蓝
  20楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106650 积分:542433 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/12/26 16:25:00 [只看该作者]

哦,使用sql是直接改后台数据的,界面的没有刷新自然看不到,同步数据或者重启即可


 回到顶部
总数 22 上一页 1 2 3 下一页