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


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

主题:求助:死循环了

帅哥哟,离线,有人找我吗?
晕了快扶我
  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


 回到顶部
帅哥哟,离线,有人找我吗?
晕了快扶我
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | 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次都过不了就放弃吧

对象名  '编码表' 无效。

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


 回到顶部
帅哥哟,离线,有人找我吗?
晕了快扶我
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | 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贴不出来而已


 回到顶部
帅哥哟,离线,有人找我吗?
晕了快扶我
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | 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")


 回到顶部
帅哥哟,离线,有人找我吗?
晕了快扶我
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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个数据源


 回到顶部