以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  请教XML导入时遇到日期字段为空的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=87267)

--  作者:lake163
--  发布时间:2016/7/7 9:25:00
--  请教XML导入时遇到日期字段为空的问题
有一个结构比较简单的XML文件,其中包括一些日期字段:如cssj,gzsj等,由于原系统的问题,这些时间字段,有的有内容,有的没有内容,即为空。

Foxtable中建立一个表,表的结构与XML完全相同,cssj,gzsj等日期内容均为日期时期型列。

用菜单的合并XML操作,当XML中遇到日期时间字段内容为空时,就提示错误“从字符串“”到类型“Date”的转换无效”

虽然可以采取:修改原系统数据或XML数据,或先导入为字符字段、再调整为时间字段这两种方式解决,

但由于数据量很大,且需要经常导入,以上方法不太现实,请教如何跳过此错误?

[此贴子已经被作者于2016/7/7 9:25:09编辑过]

--  作者:大红袍
--  发布时间:2016/7/7 10:12:00
--  

思路:用高速导入,然后再编写代码合并两表的数据

 

http://www.foxtable.com/webhelp/scr/0680.htm

 


--  作者:lake163
--  发布时间:2016/7/7 10:19:00
--  
如不能直接处理,也只有采取这种中转的方式了。
--  作者:大红袍
--  发布时间:2016/7/7 10:20:00
--  

那你就用代码直接合并吧,参考

 

Dim xmlDoc As New System.XML.XmlDocument
Dim dlg As new OpenFileDialog
If dlg.ShowDialog = DialogResult.OK Then
    xmlDoc.Load(dlg.FileName)
    Dim ndList As System.XML.XmlNodeList = xmlDoc.GetElementsByTagName("表A")
    For i As Integer = 0 To ndList.count - 1
        Dim nr As DataRow = DataTables("表A").AddNew
        For Each dc As DataCol In DataTables("表A").datacols
            If ndList(i).Item(dc.name) IsNot Nothing Then
                nr(dc.name) = ndList(i).Item(dc.name).InnerText
            End If
        Next
    Next
End If


--  作者:lake163
--  发布时间:2016/7/7 10:33:00
--  
谢谢!