Foxtable(狐表)用户栏目专家坐堂 → 为什么保存失败!


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

主题:为什么保存失败!

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


加好友 发短信
等级:二尾狐 帖子:550 积分:5223 威望:0 精华:0 注册:2018/11/6 10:54:00
为什么保存失败!  发帖心情 Post By:2020/5/13 11:11:00 [只看该作者]

输入页

Dim e As RequestEventArgs = args(0)
Select Case e.Path
    Case "addludan.htm"
        Dim wb As New weui
        Dim chp As List(of String) = DataTables("ZL_车辆信息").SQLGetValues("牌照号")
        Dim zhucao As List(of String) = DataTables("RL_员工档案").SQLGetValues("姓名","当前_岗位 in ('010105','010106')","姓名 Desc")
        Dim zhihui As List(of String) = DataTables("RL_员工档案").SQLGetValues("姓名","当前_岗位 in ('010105','010106','010107')","[当前_岗位] Desc")
       ' Dim hc As new HttpClient("http://www.anqy.work/bianhao.htm")
        
        wb.AddForm("","form1","handle.htm") '指定接收表单数据的的页面为handle.htm
        With wb.AddInputGroup("form1","ipg1","新增路单")
           ' .AddHiddenValue("编号",hc.GetData()) '插入一个隐藏的路单主键,此值将随表单数据一并提交到服务器.
            .AddInput("姓名","姓  名:","text").Value=e.Cookies("uname")
            .AddSelect("用车形式","用车形式:","台班|包月")
            .AddSelect("车辆来源","车辆来源:","自有|外协")
            .AddSelect("车辆牌照","牌 照 号:","|" & String.Join("|",chp.ToArray))
            .AddInput("用车单位","用车单位:","text").Placeholder="请输入"
            .AddInput("二级单位","二级单位:","text").Placeholder="XX厂或XX队等"
            .AddInput("作业地点","作业地点:","text").Placeholder="请输入"
            .AddInput("作业内容","作业内容:","text").Placeholder="请输入"
            .AddInput("启用时间","启用时间:","datetime-local")
            .AddInput("结束时间","结束时间:","datetime-local")
            .AddSelect("主操","主  操:","|" & String.Join("|",zhucao.ToArray))
            .AddSelect("副操","副  操:","|" & String.Join("|",zhucao.ToArray))
            .AddSelect("主指挥","主  指  挥:","|" & String.Join("|",zhihui.ToArray))
            .AddInput("副指挥","副  指  挥:","text").Placeholder="请输入!多名人员用逗号分隔"
            .AddSelect("结账方式","结账方式:","签单|现金")
            .AddInput("现金金额","现金金额:","number").Step = "0.01"
            .AddInput("签单时长","签单时长:","number").Step = "0.1"
            .AddSelect("计费车型","计费车型:","|8|16|20|25|25K5|35|50|75|100|130|160|200|220|260|300|350|货车")
            .AddHiddenValue("创建人",e.Cookies("uname"))
            .AddHiddenValue("创建日期",Format(Date.Now,"yyyy-MM-ddTHH:mm"))
        End With
        With wb.AddInputGroup("form1","ipg2","备 注:")
            .AddTextArea("备注",5).Placeholder = "请输入200字以内的备注"
        End With
        
        With wb.AddButtonGroup("form1","btg1",True)
            .Add("btn1", "确定", "submit")
        End With
        e.WriteString(wb.Build)
End Select

提交页

Dim e As RequestEventArgs = args(0)
Dim wb As New WeUI

Select Case e.Path
    Case "handle.htm"
        Dim nms() As String = {"姓名","用车形式","车辆来源","车辆牌照","用车单位","二级单位","作业地点","作业内容","启用时间","结束时间","主操","副操","主指挥","副指挥","结账方式","现金金额","签单时长","计费车型","备注","创建人","创建日期"}
        Dim bts() As String={"姓名","用车形式","车辆来源","车辆牌照","用车单位","作业地点","作业内容","启用时间","结束时间","主操","结账方式","签单时长"} '必填项目
        
        For Each  bt As String In  bts
            If e.PostValues.ContainsKey(bt) = False Then '生成错误提示页
                With wb.AddMsgPage("","msgpage","增加失败", bt & "列不能为空!")
                    .icon = "Warn" '改变图标
                    .AddButton("btn1","返回").Attribute = ""
                End With
                e.WriteString(wb.Build)
                Return False '必须返回
            End If
        Next
        'msgbox(1)
        Dim cmd As new SQLC  ommand
        cmd.C  
        'cmd.C  ommandText = "Select * Fr  om YW_路单 Where 1=2"
        'Dim dtb As DataTable = cmd.ExecuteReader(True)
        Dim dr As DataRow =  DataTables("YW_路单").AddNew()
        ' msgbox(2)
        For Each nm As String In nms
            dr(nm) = e.PostValues(nm)
        Next
        
        'Dim cmd As new SQLCommand
        'cmd.C
        cmd.C  ommandText = "AutoNo"  '生成流水号
        cmd.StoredProcedure = True '表示执行的是存储过程
        cmd.Parameters.Add("@prefix","LD")
        cmd.Parameters.Add("@mode",0)
        cmd.Parameters.Add("@nolen","3")
        cmd.Parameters.Add("@listna","编号")
        cmd.Parameters.Add("@tablena","YW_路单")
        cmd.Parameters.Add("@runningnum","",True)
        cmd.ExecuteNonQuery
        dr("编号") = cmd.Parameters("@runningnum") '获取存储过程返回的编号值
        
        Dim dt As Date =CDate(dr("启用时间"))
        If dt.Day > 25 Then '如果为25日以后的日期
            dt = new Date(dt.year,dt.month,1) '改为下个月的第一天
            dt= dt.AddMonths(1)
        End If
        dr("统计月") =  Format(dt,"yyyy-MM")
        dr.save()
 
        With wb.AddMsgPage("","msgpage","增加成功", "单号:" & dr("编号")) '生成成功提示页
            .AddButton("btn1","继续增加","addludan.htm")
        End With '返回增加成功消息
        e.WriteString(wb.Build) '生成网页
End Select


错误:
2020-05-13 10:55:13.0653语句已终止。
将截断字符串或二进制数据。
   在 System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
   在 System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
   在 System.Data.Common.DbDataAdapter.UpdateRowExecute(RowUpdatedEventArgs rowUpdatedEvent, IDbCommand dataCommand, StatementType cmdIndex)
   在 System.Data.Common.DbDataAdapter.Update(DataRow[] dataRows, DataTableMapping tableMapping)





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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/5/13 11:19:00 [只看该作者]

这种提示是某个列的字符长度不够大,改大一点:http://www.foxtable.com/webhelp/topics/0036.htm

另外可以这样,避免有多余的空格
        For Each nm As String In nms
            dr(nm) = e.PostValues(nm).trim()
        Next

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40550 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2020/5/13 11:21:00 [只看该作者]

须判断zhucao、和zhihui这样的变量是否获取到值!

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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/5/13 11:39:00 [只看该作者]

For Each nm As String In nms
    If e.PostValues.ContainsKey(nm)
        dr(nm) = e.PostValues(nm).trim()
    Else
        dr(nm) = Nothing
    End If
Next

 回到顶部