Foxtable(狐表)用户栏目专家坐堂 → 求助:死循环了


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

主题:求助:死循环了

帅哥哟,离线,有人找我吗?
晕了快扶我
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1207 积分:7224 威望:0 精华:0 注册:2013/3/4 18:02:00
求助:死循环了  发帖心情 Post By:2013/12/25 17:05:00 [只看该作者]

提示是'编码表'无效

 

 

Dim tb As Table = args(0) '要操作的表
Dim dr As DataRow
Dim cmd1 As new SQLCommand
Dim cmd2 As New SQLCommand
Dim Key As Integer
cmd1.C
cmd2.C
cmd1.CommandText = "Select Count(*) From {编码表} Where [表名] = '" & tb.Name & "'"
cmd1.commandText = "Select [顺序号] From {编码表} Where [表名]='" & tb.Name & "'"
Do
   
    Key = cmd1.ExecuteScalar() '从后台获得顺序号
    cmd2.commandText = "Update {编码表} Set [顺序号] = " & (Key + 1) & " Where [表名] = '" & tb.Name & "'"
    If cmd2.ExecuteNonQuery() > 0 Then '更新顺序号
        Exit Do '更新成功则退出循环
    End If
Loop
Dim d As Boolean
cmd1.CommandText =  "Select [日期] From {编码表} Where [表名]='" & tb.Name & "'"
d = cmd1.ExecuteScalar
If d = 0
'________________前缀提取_______________
cmd1.commandText = "Select [前缀] From {编码表} Where [表名]='" & tb.Name & "'"
Return cmd1.ExecuteScalar() & Format(Key,"0000")
Else
cmd1.commandText = "Select [前缀] From {编码表} Where [表名]='" & tb.Name & "'"
Return cmd1.ExecuteScalar() & Format(Date.Today,"yyyyMMdd") & Format(Key,"0000")
End If


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/12/25 17:09:00 [只看该作者]

无法更新当然会死循环,  建议不要这样做, 而是采取循环10次的方法,10次都过不了就放弃吧

 回到顶部
帅哥哟,离线,有人找我吗?
晕了快扶我
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1207 积分:7224 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2013/12/25 17:13:00 [只看该作者]

以下是引用Bin在2013-12-25 17:09:00的发言:
无法更新当然会死循环,  建议不要这样做, 而是采取循环10次的方法,10次都过不了就放弃吧

对象名  '编码表' 无效。

提示是这个啊图片点击可在新窗口打开查看


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/12/25 17:14:00 [只看该作者]

外部数据源请指定数据源名称.

 回到顶部
帅哥哟,离线,有人找我吗?
晕了快扶我
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1207 积分:7224 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2013/12/25 17:14:00 [只看该作者]

以下是引用Bin在2013-12-25 17:14:00的发言:
外部数据源请指定数据源名称.

有的,指定了,论坛有BUG贴不出来而已


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/12/25 17:21:00 [只看该作者]

那就检查一下表名


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


加好友 发短信
等级:版主 帖子:1693 积分:12135 威望:0 精华:7 注册:2013/7/11 10:52:00
  发帖心情 Post By:2013/12/25 17:35:00 [只看该作者]

你在Do 前面少一个判断吧

 

输入的表名是否存在?

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
晕了快扶我
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1207 积分:7224 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2013/12/25 17:37:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20131225173552.jpg
图片点击可在新窗口打开查看
百思不得其解..重新修改了下代码,去掉了对日期的判断,还是这样

 

 

Dim tb As Table = args(0) '要操作的表
Dim dr As DataRow
Dim cmd1 As new SQLCommand
Dim cmd2 As New SQLCommand
Dim Key As Integer
cmd1.C
cmd2.C
cmd1.CommandText = "Select Count(*) From {编码表} Where [表名] = '" & tb.Name & "'"
cmd1.commandText = "Select [顺序号] From {编码表} Where [表名]='" & tb.Name & "'"
Do
   
    Key = cmd1.ExecuteScalar() '从后台获得顺序号
    cmd2.commandText = "Update {编码表} Set [顺序号] = " & (Key + 1) & " Where [表名] = '" & tb.Name & "'"
    If cmd2.ExecuteNonQuery() > 0 Then '更新顺序号
        Exit Do '更新成功则退出循环
    End If
Loop
'________________前缀提取_______________
cmd1.commandText = "Select [前缀] From {编码表} Where [表名]='" & tb.Name & "'"
Return cmd1.ExecuteScalar() & Format(Date.Today,"yyyyMMdd") & Format(Key,"0000")


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/12/25 17:42:00 [只看该作者]

检查一下你是否有编码表这个表,表名是否正确.

 回到顶部
帅哥哟,离线,有人找我吗?
晕了快扶我
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1207 积分:7224 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2013/12/25 17:43:00 [只看该作者]

以下是引用Bin在2013-12-25 17:42:00的发言:
检查一下你是否有编码表这个表,表名是否正确.

图片点击可在新窗口打开查看明白了,我用了2个数据源


 回到顶部