以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 请检查菜单的重置列有无问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=46160) |
-- 作者:blackzhu -- 发布时间:2014/2/18 11:02:00 -- 请检查菜单的重置列有无问题 新版的菜单 重置列 不知道 为啥 一个很简单的代码 只要重置列一下 就直接退出系统. |
-- 作者:狐狸爸爸 -- 发布时间:2014/2/18 11:03:00 -- 这个不是重置列的问题,是DatacolChanged事件的问题,而且通常是死循环的问题。 |
-- 作者:blackzhu -- 发布时间:2014/2/18 11:04:00 -- 看GIF |
-- 作者:blackzhu -- 发布时间:2014/2/18 11:06:00 -- 我在几个表里面 都发现有这个问题 在 DataColChanged 里面的代码如下 应该不存在代码问题 If e.DataCol.Name = "条形码" Then Dim cmd As New SQLCommand Dim dt As DataTable cmd.C Dim dr As DataRow = e.DataRow cmd.CommandText = "SELECT * From {商品资料} Where [条形码] = \'" & dr("条形码") & "\'" dt = cmd.ExecuteReader If dt.DataRows.Count > 0 Then dr("名称") = dt.DataRows(0)("名称") dr("类别") = dt.DataRows(0)("类别") dr("单位") = dt.DataRows(0)("单位") dr("规格") = dt.DataRows(0)("规格") dr("颜色") = dt.DataRows(0)("颜色") dr("品牌") = dt.DataRows(0)("品牌") dr("零售价") = dt.DataRows(0)("零售价") dr("供货商") = dt.DataRows(0)("供货商") dr("原价") = dt.DataRows(0)("成本价") Else dr("名称") = Nothing dr("类别") = Nothing dr("单位") = Nothing dr("规格") = Nothing dr("颜色") = Nothing dr("品牌") = Nothing dr("零售价") = Nothing dr("供货商") = Nothing dr("原价") = Nothing End If End If If e.DataCol.Name = "条形码" Then Dim cmd As New SQLCommand Dim dt As DataTable Dim dr As DataRow = e.DataRow cmd.C cmd.CommandText = "SELECT * From {促销设定} Where [条形码] = \'" & e.NewValue & "\' And [起始时间] <= #" & dr("销售日期") & "# And [结束时间]>=#" & dr("销售日期") & "#" dt = cmd.ExecuteReader If dt.DataRows.Count > 0 Then dr("促销折扣") = dt.DataRows(0)("促销折扣") Else dr("促销折扣") = Nothing End If End If Select Case e.DataCol.Name Case "折扣","零售价","促销折扣" If e.DataRow(e.DataCol.Name) Then e.DataRow("零售价")=Nothing Else If e.DataRow.IsNull("促销折扣") = False AndAlso e.DataRow("促销折扣") >=0 Then e.DataRow("零售价")=e.DataRow("原价")*e.DataRow("促销折扣") Else e.DataRow("零售价")=e.DataRow("原价")*e.DataRow("折扣") End If End If End Select If e.DataCol.Name = "销售数量" Then If e.DataRow.IsNull("销售数量") Then e.DataRow("销售金额")=Nothing Else e.DataRow("销售金额")=e.DataRow("销售数量")*e.DataRow("零售价") End If End If
|
-- 作者:blackzhu -- 发布时间:2014/2/18 11:07:00 -- 我直接输入数据 这些代码都可以执行 并无退出现象 |
-- 作者:blackzhu -- 发布时间:2014/2/18 11:19:00 -- 我仔细检查了 还是触发列的列名 套用造成的. |