Foxtable(狐表)用户栏目专家坐堂 → [求助]从字符串“”到类型“Single”的转换无效。 这个怎么办


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

主题:[求助]从字符串“”到类型“Single”的转换无效。 这个怎么办

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


加好友 发短信
等级:幼狐 帖子:80 积分:924 威望:0 精华:0 注册:2018/2/9 21:32:00
[求助]从字符串“”到类型“Single”的转换无效。 这个怎么办  发帖心情 Post By:2019/5/15 14:41:00 [只看该作者]


.NET Framework 版本:2.0.50727.9031
Foxtable 版本:2018.10.9.1
错误所在事件:
详细错误信息:
从字符串“”到类型“Single”的转换无效。
输入字符串的格式不正确。
-----------------------------------------------------------------------------------------------------------------
从系统下载了2个订单表,开始是可以的,但是后来下的就报错,对比了表格也没发现哪里有问题,麻烦帮我看下


--------------------------------------------------------------------------------------------------------------------------------
导入 代码如下:
--------------------------------------------------------------------------------------------------------------------------------
Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog
dlg.Filter = "Excel文件|*.xls;*.xlsx"
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    Dim mg As New Merger
    mg.SourcePath = dlg.FileName
    mg.Format = "excel" '指定格式
    mg.SourceTableName = "报表1$"
    mg.DataTableName = "订单临时表"
    mg.FieldMaps.Add("旺旺/昵称","客户ID")
    mg.FieldMaps.Add("系统订单号","系统单号")
    mg.Merge()
    DataTables("订单临时表").DataCols("系统单号").RaiseDataColChanged()
End If
Dim Cols1() As String = {"系统单号","平台订单号","付款时间","发货时间","实付金额","订单金额","商品净重","实收运费"}
Dim Cols2() As String = {"系统单号","订单号","付款时间","发货时间","实付总金额","订单总金额","商品总重","运费"}
For Each dr1 As DataRow In DataTables("订单临时表").Select("[订单金额] > 1")
    Dim dr2 As DataRow = DataTables("订单临时表汇总").AddNew()
    For i As Integer = 0 To Cols1.Length -1
        dr2(Cols2(i)) = dr1(Cols1(i))
    Next
Next
Syscmd.Project.Save()

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:正常的.xlsx

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:出错的.xlsx

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


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

1、把这个代码删除后测试

 

DataTables("订单临时表").DataCols("系统单号").RaiseDataColChanged()

 

2、把这个代码删除后测试

 

dr2(Cols2(i)) = dr1(Cols1(i))

 


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


加好友 发短信
等级:幼狐 帖子:80 积分:924 威望:0 精华:0 注册:2018/2/9 21:32:00
  发帖心情 Post By:2019/5/31 15:31:00 [只看该作者]

Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog
dlg.Filter = "Excel文件|*.xls;*.xlsx"
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    Dim mg As New Merger
    mg.SourcePath = dlg.FileName
    mg.Format = "excel" '指定格式
    mg.SourceTableName = "报表1$"
    mg.DataTableName = "订单临时表"
    mg.FieldMaps.Add("旺旺/昵称","客户ID")
    mg.FieldMaps.Add("系统订单号","系统单号")
    mg.Merge()
End If


============================================================================
已经删的只有这个导入的代码了,但是还是提醒这个报错;

下面的是原文件

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:订单.xlsx



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


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

 

测试了一下,代码没问题。应该是你datacolchanged事件有问题导致的。

 

 


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


加好友 发短信
等级:幼狐 帖子:80 积分:924 威望:0 精华:0 注册:2018/2/9 21:32:00
  发帖心情 Post By:2019/6/3 11:53:00 [只看该作者]

我已经把datacolchanged的代码都去掉了,而且 新建了 个 项目  ,只加了导入的代码,还是发生了这个错误
麻烦帮我看下  是哪里有问题;


 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:导入测试2.foxdb


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


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

算是bug吧。换一种方式导入,如

 

Dim dlg As New OpenFileDialog
dlg.Filter = "Excel文件|*.xls;*.xlsx"
If dlg.ShowDialog =DialogResult.OK Then
    Dim t As Table = Tables("订单")
    t.StopRedraw()
    Dim Book As New XLS.Book(dlg.FileName)
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
    For n As Integer = 1 To Sheet.Rows.Count -1
        Dim r As DataRow = Nothing ' t.DataTable.Find("第一列 = '" & sheet(n, 0).text & "'")
        If r Is Nothing Then r = t.DataTable.AddNew()
        For i As Integer = 0 To sheet.Cols.Count -1
            Dim cname As String = sheet(0, i).text
            If cname = "旺旺/昵称" Then
                r("客户id") = sheet(n, i).Text
            End If
            If t.Cols.Contains(cname) Then
                r(cname) = sheet(n, i).Text
            End If
        Next
    Next
    t.ResumeRedraw()
End If


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


加好友 发短信 F6
等级:狐精 帖子:3036 积分:19229 威望:0 精华:2 注册:2008/9/1 7:50:00
  发帖心情 Post By:2019/6/3 14:51:00 [只看该作者]

最近有点懒去翻找和测试逐行逐个写入数据的,恰好甜版写了样板,多谢了!直接拷贝小改,呵呵

 回到顶部