Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共9 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

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

1楼
reachtone 发表于:2010/6/25 10:35:00

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


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

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

2楼
狐狸爸爸 发表于:2010/6/25 10:38:00
请列出此按钮的代码
3楼
reachtone 发表于: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楼
狐狸爸爸 发表于: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编辑过]
5楼
reachtone 发表于:2010/6/25 13:06:00

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

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

[此贴子已经被作者于2010-6-25 13:07:48编辑过]
6楼
狐狸爸爸 发表于:2010/6/25 13:08:00

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

7楼
reachtone 发表于:2010/6/25 13:10:00
以下是引用狐狸爸爸在2010-6-25 13:08:00的发言:

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

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

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

8楼
blackzhu 发表于:2010/6/25 13:57:00
以下是引用reachtone在2010-6-25 13:10:00的发言:

 

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

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

9楼
mr725 发表于:2010/6/25 15:50:00
以下是引用reachtone在2010-6-25 13:10:00的发言:

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

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

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

共9 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .03125 s, 2 queries.