以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  怎么解决呢?传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。参数 19 (""): 提供的值不是数据类型 float 的有效实例。请检查源数据中的无效值。例如,小数位数大于精度的数值类型的数据即为无效值  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=190100)

--  作者:cnsjroom
--  发布时间:2024/1/16 23:38:00
--  怎么解决呢?传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。参数 19 (""): 提供的值不是数据类型 float 的有效实例。请检查源数据中的无效值。例如,小数位数大于精度的数值类型的数据即为无效值

当前代码运行提示:
错误的事件名称
System.Data.OleDb.OleDbException (0x80040E14): 传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。参数 19 (""): 提供的值不是数据类型 float 的有效实例。请检查源数据中的无效值。例如,小数位数大于精度的数值类型的数据即为无效值。
   在 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)


综合得分  字段列属性float
当前代码如下:【红色部分代码怎么修正呢?要保持两位小数】
……
    
    cnt = dt.Compute("Count([政治思想满分15分])", "年度=\'" & e.Values("年度") & "\'  and 季度=\'" & e.Values("季度") & "\'and 测评对象 = \'" & Product & "\' ") \'如果操作人员属于委领导,则将对应的好等次的数据 计算为A好里面的
    If cnt > 0 Then
        dr("政治思想") = cnt / e1
    Else
        dr("政治思想") = Nothing
    End If
    cnt1 = dt.Compute("Count([担当精神满分15分])", "年度=\'" & e.Values("年度") & "\'  and 季度=\'" & e.Values("季度") & "\'and 测评对象 = \'" & Product & "\' ")
    If cnt1 > 0 Then
        dr("担当精神") = cnt1 / e1
    Else
        dr("担当精神") = Nothing
    End If
    cnt2 = dt.Compute("Count([能力水平满分10分])", "年度=\'" & e.Values("年度") & "\'  and 季度=\'" & e.Values("季度") & "\'and 测评对象 = \'" & Product & "\' ")
    If cnt2 > 0 Then
        dr("能力水平") = cnt2 / e1
    Else
        dr("能力水平") = Nothing
    End If
    cnt3 = dt.Compute("Count([工作实绩满分60分])", "年度=\'" & e.Values("年度") & "\'  and 季度=\'" & e.Values("季度") & "\'and 测评对象 = \'" & Product & "\' ")
    If cnt3 > 0 Then
        dr("工作实绩") = cnt3 / e1
    Else
        dr("工作实绩") = Nothing
    End If
    dr("综合得分") = Format((dr("政治思想") + dr("担当精神") + dr("能力水平") + dr("工作实绩")) / e1, "00.00")
    dr.save
[此贴子已经被作者于2024/1/16 23:43:29编辑过]

--  作者:有点蓝
--  发布时间:2024/1/17 8:38:00
--  
e1是什么值?
msgbox(e1)

dr("综合得分") = round((dr("政治思想") + dr("担当精神") + dr("能力水平") + dr("工作实绩")) / e1, 2)