以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 请帮我看下 这个代码有啥问题? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=127175) |
-- 作者:blackzhu -- 发布时间:2018/11/7 16:38:00 -- 请帮我看下 这个代码有啥问题? If e.PostValues.ContainsKey("联系电话") Then Dim phone As String = e.PostValues("联系电话").Trim() cmd.CommandText = "Sele ct 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 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 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 cmd.Com mandText = "Ins ert In to 客户管理 (客户姓名, 性别, 联系电话,年龄,出生日期,咨询病种,开发渠道,信息来源,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("@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) Catch ex As Exception logtxt(ex) End Try 请帮我看看这个代码有什么问题,经常确定后退到登录界面. 日志报的错误是这个 2018-11-07 13:35:36.0546 调用的目标发生了异常。 在 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) 但是我看了代码没啥问题呀! |
-- 作者:blackzhu -- 发布时间:2018/11/7 17:03:00 -- 我看了代码 没有什么问题呀,这个很奇怪,偶尔会报一次错误,但是不是一直报错. |
-- 作者:有点甜 -- 发布时间:2018/11/7 17:06:00 -- 如果每次报错,加入msgbox定位出错位置。代码无法看出问题。 |
-- 作者:blackzhu -- 发布时间:2018/11/7 17:30:00 -- 正式使用中,如果用这个区排错的话 所有人都来找我了 |
-- 作者:有点甜 -- 发布时间:2018/11/7 17:40:00 -- 以下是引用blackzhu在2018/11/7 17:30:00的发言:
正式使用中,如果用这个区排错的话 所有人都来找我了
那就用 logtxt("xxxxx") 来记录信息,看执行到哪里出错。 |