Foxtable(狐表)用户栏目专家坐堂 → 偶尔出现的奇怪错误


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

主题:偶尔出现的奇怪错误

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


加好友 发短信 一级勋章
等级:版主 帖子:1991 积分:19375 威望:0 精华:20 注册:2008/9/2 10:09:00
偶尔出现的奇怪错误  发帖心情 Post By:2010/6/25 10:35:00 [只看该作者]

项目中有个数据录入按钮,这个按钮中的事件没有任何问题,也一直是可以正常运行的,但如果离开一会(比如十几分钟),再回来单击这个按钮,就会出现这个错误:


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

这个问题,我这里有台机器经常出现,但其它的机器按同样的操作,无论怎么离开都正常。太奇怪了。。


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/6/25 10:38:00 [只看该作者]

请列出此按钮的代码

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


加好友 发短信 一级勋章
等级:版主 帖子:1991 积分:19375 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2010/6/25 10:42:00 [只看该作者]

If e.Form.Controls("TextBox1").Value="" or e.Form.Controls("ComboBox1").Value="" or e.Form.Controls("ComboBox2").Value=""
    MessageBox.Show("设置不完整,系统无法进入数据录入维护状态! ","警告",MessageBoxButtons.OK,MessageBoxIcon.Warning)
ElseIf Functions.Execute("Date",e.Form.Controls("DateTimePicker1").Value) = "Yes" Then   '如果在软件的许可日期内
    Dim d as Date = e.Form.Controls("DateTimePicker1").Value
    Vars("Media") = e.Form.Controls("ComboBox2").Value    '媒体名称
    e.Form.Controls("Label3").Text = "【" & d & "(" & e.Form.Controls("TextBox1").Value & "), " & Vars("Dq") & "-" & Vars("Media") & "】"
    Vars("Filter") = "区域='" & Vars("Dq") & "' and 媒体名称='" & Vars("Media") & "'"   '条件
    '得到媒体代码和异型比例
    Dim sql As String = "Select top 1 * from 采集_媒体列表 where " & Vars("Filter")
    Dim dt as DataTable = Functions.Execute("Data",sql)
    If dt.DataRows.Count = 0 Then
        MessageBox.Show("在系统设置中没有找到指定区域的对应媒体名称! ","警告",MessageBoxButtons.OK,MessageBoxIcon.Warning)
        Return
    Else
        Vars("Mdc") = dt.datarows(0)("媒体代码")
        Vars("Jgxs") = dt.datarows(0)("异型加收")
    End If
    '得到价格体系
    sql = "Select top 1 * from 采集_价格体系 where " & Vars("Filter") & " and 起<='" & d & "' and 止>='" & d & "'"
    dt = Functions.Execute("Data",sql)
    If dt.DataRows.Count = 0 Then
        MessageBox.Show("系统没有找到指定日期所对应的广告价格体系! ","警告",MessageBoxButtons.OK,MessageBoxIcon.Warning)
        Return
    Else
        Vars("Price") = dt.datarows(0)("价格体系")
    End If
    '生成广告类型列表
    sql = "Select distinct 广告类型 from 采集_广告类型 where " & Vars("Filter")
    Functions.Execute("Query",sql,"广告类型")
    '加载数据
    e.Form.Controls("SplitContainer2").Visible = True
    StatusBar.Message2 = "正在加载数据, 请稍候...".PadLeft(30)
    Application.DoEvents
    DataTables("主窗口_Table2").LoadFilter = "日期='" & d & "' and " & Vars("Filter")
    DataTables("主窗口_Table2").Load
    With Tables("_录入")
        .Cols("广告类型").ComboList = Vars("List")   '改变设置广告类型列表
        .DataTable.LoadFilter = "日期='" & d & "' and " & Vars("Filter") & " and " & Vars("Mtqx") & " and " & Vars("Hyqx") & " and " & Vars("Bmqx")
        .DataTable.Load
        .Filter = ""
        .AddNew()      '增加行
        .OpenView("录入")
        .Select(.Current.Index,.Cols("版面叠次").Index)  '将焦点移到table的当前行\第一列上
        .Focus          '将焦点移到table上
    End With
    StatusBar.Reset
    e.Form.Controls("NavBar1").NavPages(0).Enabled = False
End If

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/6/25 13:03:00 [只看该作者]

dt = Functions.Execute("Data",sql)
If dt.DataRows.Count = 0 Then

 

改为:

 

dt = Functions.Execute("Data",sql)

if dt Is Nothing Then

   messagebox.show("有错误")

End If
If dt.DataRows.Count = 0 Then

 

另清除Catch看看

 

[此贴子已经被作者于2010-6-25 13:02:53编辑过]

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


加好友 发短信 一级勋章
等级:版主 帖子:1991 积分:19375 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2010/6/25 13:06:00 [只看该作者]

dt.DataRows.Count = 0 和 dt Is Nothing 应该没什么区别吧?

生成datatable的sql语句肯定是没问题的,所以问题应该不在这里。

[此贴子已经被作者于2010-6-25 13:07:48编辑过]

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/6/25 13:08:00 [只看该作者]

如果dt is nothing,那么dt.datarows.count = 0,就会出错,两者完全不同的,前者是没有表,后者是有表,但是是一个空表。


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


加好友 发短信 一级勋章
等级:版主 帖子:1991 积分:19375 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2010/6/25 13:10:00 [只看该作者]

以下是引用狐狸爸爸在2010-6-25 13:08:00的发言:

如果dt is nothing,那么dt.datarows.count = 0,就会出错,两者完全不同的,前者是没有表,后者是有表,但是是一个空表。

问题不在这里,请看5楼编辑后的回复。

今天想再重复昨天的错误,却又怎么都不出现了,即使离开一个小时再单击此按钮也正常。


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57590 威望:0 精华:15 注册:2008/9/1 9:45:00
快邮标签打印  发帖心情 Post By:2010/6/25 13:57:00 [只看该作者]

以下是引用reachtone在2010-6-25 13:10:00的发言:

 

今天想再重复昨天的错误,却又怎么都不出现了,即使离开一个小时再单击此按钮也正常。

 老大, 电脑是偶尔搭错脑筋了,哈哈!


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/6/25 15:50:00 [只看该作者]

以下是引用reachtone在2010-6-25 13:10:00的发言:

问题不在这里,请看5楼编辑后的回复。

今天想再重复昨天的错误,却又怎么都不出现了,即使离开一个小时再单击此按钮也正常。

我常碰到这样的问题, 也许老大说的对,有些时候必须要按 foxtable 的规则吧····


 回到顶部