Foxtable(狐表)用户栏目专家坐堂 → [求助]后台删除报错


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

主题:[求助]后台删除报错

帅哥哟,离线,有人找我吗?
天一生水
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1140 积分:11255 威望:0 精华:0 注册:2017/9/26 16:30:00
[求助]后台删除报错  发帖心情 Post By:2021/10/29 20:33:00 [只看该作者]

老师好!删除[代码]、[日期]均相同的行,报错如图。是什么原因?

代码:
Dim cmd As New SQLCommand
c
Dim Count As Integer
c.CommandText = "Del ete from {股piao日线} where [_Identify] not In (Se lect min([_Identify]) As id from {股piao日线} group by 代码,日期)"
Count= cmd.ExecuteNonQuery()
Messagebox.Show( "总共删除" & Count & "行!")


图片点击可在新窗口打开查看此主题相关图片如下:后台去重.jpg
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107680 积分:547721 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/10/30 9:06:00 [只看该作者]

可能之前的某个操作出错,导致数据库连接没有关闭,重启项目在测试

另外给代码和日期列添加个索引

另外试试使用关联删除,尽量不要使用in,下面代码请到测试库测试
Delete from a from {股piao日线} as a inner join (Select min([_Identify]) As id from {股piao日线} group by 代码,日期) as b on a.[_Identify] = b.id

 回到顶部
帅哥哟,离线,有人找我吗?
天一生水
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1140 积分:11255 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2021/10/30 21:58:00 [只看该作者]

老师好!
我这样测试:
1、我先添加了代码和日期的索引;
2、数据量在1千万行以上时,前后两种代码会报错“The connection was not closed. The connection's current state is open.”;
3、少量数据测试,几百行时,不会报错;
4、老师提供的关联删除,在数据库里执行显示错误:
消息 102,级别 15,状态 1,第 1 行
'}' 附近有语法错误。
消息 102,级别 15,状态 1,第 1 行
'}' 附近有语法错误。
5、在项目里测试关联删除代码 删除的是 不重复行~

下一步怎么弄?


[此贴子已经被作者于2021/10/31 13:12:01编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107680 积分:547721 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/10/31 20:17:00 [只看该作者]

Foxtable的sql放到数据库里执行的时候要去掉大括号

 回到顶部