Foxtable(狐表)用户栏目专家坐堂 → 我实在看不到问题出在什么地方?


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

主题:我实在看不到问题出在什么地方?

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
我实在看不到问题出在什么地方?  发帖心情 Post By:2018/11/21 10:20:00 [只看该作者]

 If e.PostValues.ContainsKey("联系电话") Then
                        Dim phone As String = e.PostValues("联系电话").Trim()
                        cmd.CommandText = "Sel     ect Count(*) From 客户管理 Where 联系电话 = '" & phone & "'Or 备用号码 ='" & phone & "' Or QQ微信 ='" & phone & "'"
                        If cmd.ExecuteScalar > 0 Then
                            With wb.AddMsgPage("", "msgpage", "增加失败", "联系电话已经存在")
                                .Icon = "Warn" '改变图标
                                .AddButton("btn1", "返回").Attribute = ""
                                .AddButton("btn2", "返回首页", "shouye.htm")
                            End With
                            e.WriteString(wb.Build)
                            Return '必须返回
                        End If
                    End If
                    logtxt(1, e)
                    Try
                        Dim nms() As String = {"客户姓名", "联系电话", "信息来源", "咨询病种"} '不能为空的列名数组
                        For Each nm As String In nms
                            If e.PostValues.ContainsKey(nm) = False Then '生成错误提示页
                                With wb.AddMsgPage("", "msgpage", "增加失败", nm & "列不能为空!")
                                    .Icon = "Warn" '改变图标
                                    .AddButton("btn1", "返回").Attribute = ""
                                    .AddButton("btn2", "返回首页", "shouye.htm")
                                End With
                                e.WriteString(wb.Build)
                                Return '必须返回
                            End If
                        Next
                        logtxt("xxxxx2", e)
                        Dim pt As DataTable = x.AddDataTable("员工管理", "服务器", "分院='" & fy & "' And 部门='" & Group & "' And 状态='启用'")
                        Dim Products As List(Of String)
                        Products = pt.GetValues("姓名")
                        Dim pp As String = ""
                        For Each Product As String In Products
                            If e.PostValues.ContainsKey(Product) AndAlso e.PostValues(Product).Trim() = "on" Then '不能省略Trim 
                                pp = pp & Product & ","
                            End If
                        Next
                        If pp > "" Then
                            pp = pp.Trim(",")
                        End If
                        logtxt("xxxxx3", e)
                        cmd.CommandText = "Ins         ert Into 客户管理 (客户姓名, 性别, 联系电话,年龄,出生日期,咨询病种,初始病种,开发渠道,信息来源,QQ微信,备用号码,说明,咨询状态,客户类型,开发人员,登记时间,开发部门,总院,分院,GUID,客户编号,拼音码,副开发人员) Values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"
                        cmd.Parameters.Add("@客户姓名", e.PostValues("客户姓名").Trim())
                        cmd.Parameters.Add("@性别", e.PostValues("性别"))
                        cmd.Parameters.Add("@联系电话", e.PostValues("联系电话").Trim())
                        cmd.Parameters.Add("@年龄", e.PostValues("年龄"))
                        cmd.Parameters.Add("@出生日期", e.PostValues("出生日期"))
                        cmd.Parameters.Add("@咨询病种", e.PostValues("咨询病种"))
                        cmd.Parameters.Add("@初始病种", e.PostValues("咨询病种"))
                        cmd.Parameters.Add("@开发渠道", e.PostValues("开发渠道"))
                        cmd.Parameters.Add("@信息来源", e.PostValues("信息来源"))
                        cmd.Parameters.Add("@QQ微信", e.PostValues("QQ微信"))
                        cmd.Parameters.Add("@备用号码", e.PostValues("备用号码"))
                        cmd.Parameters.Add("@说明", e.PostValues("说明"))
                        cmd.Parameters.Add("@咨询状态", "未上门")
                        cmd.Parameters.Add("@客户类型", "咨询客户")
                        cmd.Parameters.Add("@开发人员", UserName.Trim)
                        cmd.Parameters.Add("@登记时间", Date.Now)
                        cmd.Parameters.Add("@开发部门", Group.Trim)
                        cmd.Parameters.Add("@总院", zy.Trim)
                        cmd.Parameters.Add("@分院", fy.Trim)
                        cmd.Parameters.Add("@GUID", System.Guid.NewGuid.ToString.Replace("-", Nothing))
                        cmd.Parameters.Add("@客户编号", "KHY" & Format(Date.Today, "yyMMddHHmmss") & Rand.Next(1, 300)) '生成200到300之间的随机整数
                        cmd.Parameters.Add("@拼音码", GetPinYin(e.PostValues("客户姓名")))
                        cmd.Parameters.Add("@副开发人员", pp)
                        If cmd.ExecuteNonQuery > 0 Then
                            With wb.AddMsgPage("", "msgpage", "客户添加成功", "继续努力") '生成成功提示页
                                .AddButton("btn1", "继续增加", "kehudengji.htm")
                                .AddButton("btn2", "返回首页", "shouye.htm")
                            End With
                        Else
                            With wb.AddMsgPage("", "msgpage", "客户添加失败", "无法继续") '生成成功提示页
                                .Icon = "Warn"
                                .AddButton("btn3", "试试再次继续", "kehudengji.htm")
                                .AddButton("btn4", "返回首页", "shouye.htm")
                            End With
                        End If           
                        e.WriteString(wb.Build)
                        logtxt(3, e)
                    Catch ex As Exception
                        logtxt(ex, e)
                    End Try
                End If

代码如上,但是我截断测试后 发现日志 1  xxx2 xxx3 3 都执行了,但是3以后报了个错


2018-11-20 17:53:05.2688
调用的目标发生了异常。
   在 System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
   在 System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
   在 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
   在 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   在 UserCode.DllExecute(String ClassName, String methodName, Object[] args)
   在 UserCode.HttpRequest(RequestEventArgs e)
索引超出了数组界限。
   在 Foxtable.DataRowCollection.get_Item(Int32 Index)
   在 HisWebApp.HisWebApp.FileHeader(RequestEventArgs e)

请帮我看看,是否说明这一段代码是对?是不是其他代码出现问题了.

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/21 10:34:00 [只看该作者]

1、如果可以执行到最后,说明这段代码没问题;

 

2、执行完这段代码以后,你还跳转到哪里执行什么代码了?后面对应的代码也加上msgbox调试。


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2018/11/21 10:44:00 [只看该作者]

整个页面的代码实在这样的!

 Case "kehudengji.htm" '首页
                If e.PostValues.Count = 0 Then
                    Dim dtx As DataTable = x.AddDataTable("信息来源", "服务器")
                    Dim foxdt As DataTable = x.AddDataTable("病种分类", "服务器2")
                    Dim pt As DataTable = x.AddDataTable("员工管理", "服务器", "分院='" & fy & "' And 部门='" & Group & "' And 状态='启用'")
                    Dim gjs As List(Of String) = dtx.GetValues("信息来源")
                    Dim gjs1 As List(Of String) = foxdt.GetValues("病种分类")
                    Dim Products As List(Of String)
                    Products = pt.GetValues("姓名")
                    wb.AddPageTitle("", "pageheader", "客户登记", "美奥口腔HIS系统")
                    wb.AddForm("", "form1", "kehudengji.htm")
                    With wb.AddInputGroup("form1", "ipg1", "客户信息")
                        .AddInput("客户姓名", "客户姓名:", "Text") '前一个"姓名"是ID,后一个"姓名"是标题
                        .AddSelect("性别", "性别:", "男|女")  '调用js函数.
                        .AddInput("联系电话", "联系电话:", "text")
                        With .AddInput("年龄", "年龄:", "number")
                            .Min = "5"
                            .Max = "90"
                            .Placeholder = "年龄范围为5到90"
                        End With
                        .AddInput("出生日期", "出生日期:", "date")
                        .AddSelect("咨询病种", "咨询病种:", "口内|" & String.Join("|", gjs1.ToArray)).Attribute = ""  '调用js函数.
                        .AddSelect("信息来源", "信息来源:", "市场渠道|" & String.Join("|", gjs.ToArray)).Attribute = ""  '调用js函数.
                    End With
                    With wb.AddCheckGroup("form1", "rdg1", "副开发人员")
                        For Each Product As String In Products
                            .Add(Product, Product)
                        Next
                    End With
                    With wb.AddInputGroup("form1", "ipg2", "开发渠道:")
                        .AddTextArea("开发渠道", 3).Placeholder = "请输入100字以内的备注"
                    End With
                    With wb.AddInputGroup("form1", "ipg3", "开发备注:")
                        .AddTextArea("说明", 5).Placeholder = "请输入200字以内的备注"
                    End With
                    With wb.AddButtonGroup("form1", "btg1", True)
                        .Add("btn1", "确定", "submit")
                        .Add("btn2", "返回首页", "submit").FormAction = "shouye.htm"
                    End With
                    e.WriteString(wb.Build)
                Else
                   这段代码  在上面贴出来
                End If
''这边就是另外一个页面了
case "xxx"


你老的意思是其他的页面出现问题?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/21 10:46:00 [只看该作者]

 

在可能执行到的地方,都加入msgbox,定位出错位置。

 


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2018/11/21 11:30:00 [只看该作者]

因为很多机构在用,我们这样的写法 跟CASE 之间有关系吗? 因为这个页面我看了半天都是对,所以其他页面都没有去找.

问题是 我本地没有出现问题,是使用者在反应,但是出错率很少.


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/21 12:36:00 [只看该作者]

1、开始你的描述就不对。你无法调试出错,就不要说代码正常,可以完整执行不出错。

 

2、真正出错的时候,日志里面的记录是怎样的?能否判断定位那里出错?

 

3、请加入logtxt,定位出出错位置再来提问。


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2018/11/21 13:14:00 [只看该作者]

   logtxt(3, e)
 执行了
    Catch ex As Exception
            logtxt(ex, e)
   End Try
这个代码下面是另外一个页面代码了.

但是执行了3以后出来了这个错误:


2018-11-20 17:53:05.2688
调用的目标发生了异常。
   在 System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
   在 System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
   在 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
   在 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   在 UserCode.DllExecute(String ClassName, String methodName, Object[] args)
   在 UserCode.HttpRequest(RequestEventArgs e)
索引超出了数组界限。
   在 Foxtable.DataRowCollection.get_Item(Int32 Index)
   在 HisWebApp.HisWebApp.FileHeader(RequestEventArgs e)




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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/21 14:57:00 [只看该作者]

1、你 logtxt(3, e) 后面还有没有代码?如果有,贴出来看看。

 

2、贴出你httprequest的完整的代码看看。

 

3、httprequest那里,执行前,执行后,也加上msgbox调试。


 回到顶部