以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 偶尔出现的奇怪错误 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=7462) |
-- 作者:reachtone -- 发布时间:2010/6/25 10:35:00 -- 偶尔出现的奇怪错误 项目中有个数据录入按钮,这个按钮中的事件没有任何问题,也一直是可以正常运行的,但如果离开一会(比如十几分钟),再回来单击这个按钮,就会出现这个错误: 这个问题,我这里有台机器经常出现,但其它的机器按同样的操作,无论怎么离开都正常。太奇怪了。。 |
-- 作者:狐狸爸爸 -- 发布时间:2010/6/25 10:38:00 -- 请列出此按钮的代码 |
-- 作者: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 |
-- 作者:狐狸爸爸 -- 发布时间:2010/6/25 13:03:00 -- dt = Functions.Execute("Data",sql)
改为:
dt = Functions.Execute("Data",sql) if dt Is Nothing Then messagebox.show("有错误") End If
另清除Catch看看
[此贴子已经被作者于2010-6-25 13:02:53编辑过]
|
-- 作者:reachtone -- 发布时间:2010/6/25 13:06:00 -- dt.DataRows.Count = 0 和 dt Is Nothing 应该没什么区别吧? 生成datatable的sql语句肯定是没问题的,所以问题应该不在这里。 [此贴子已经被作者于2010-6-25 13:07:48编辑过]
|
-- 作者:狐狸爸爸 -- 发布时间:2010/6/25 13:08:00 -- 如果dt is nothing,那么dt.datarows.count = 0,就会出错,两者完全不同的,前者是没有表,后者是有表,但是是一个空表。 |
-- 作者:reachtone -- 发布时间:2010/6/25 13:10:00 -- 以下是引用狐狸爸爸在2010-6-25 13:08:00的发言:
如果dt is nothing,那么dt.datarows.count = 0,就会出错,两者完全不同的,前者是没有表,后者是有表,但是是一个空表。 问题不在这里,请看5楼编辑后的回复。 今天想再重复昨天的错误,却又怎么都不出现了,即使离开一个小时再单击此按钮也正常。 |
-- 作者:blackzhu -- 发布时间:2010/6/25 13:57:00 -- 快邮标签打印 以下是引用reachtone在2010-6-25 13:10:00的发言:
今天想再重复昨天的错误,却又怎么都不出现了,即使离开一个小时再单击此按钮也正常。 老大, 电脑是偶尔搭错脑筋了,哈哈! |
-- 作者:mr725 -- 发布时间:2010/6/25 15:50:00 -- 以下是引用reachtone在2010-6-25 13:10:00的发言:
问题不在这里,请看5楼编辑后的回复。 今天想再重复昨天的错误,却又怎么都不出现了,即使离开一个小时再单击此按钮也正常。 我常碰到这样的问题, 也许老大说的对,有些时候必须要按 foxtable 的规则吧···· |