以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  请教,导入代码与表属性代码冲突???  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=88435)

--  作者:zch1104
--  发布时间:2016/8/2 22:22:00
--  请教,导入代码与表属性代码冲突???

本人;写入导入代码如下:

 

Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog
dlg.Filter=  "Excel文件|*.xls"  \'设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮
    Dim mg As New Merger
    mg.SourcePath = dlg.FileName
    mg.Format = "excel" \'指定格式
    mg.SourceTableName = "商品资料$"
    mg.DataTableName = "商品资料"
    mg.Merge()
End If

没问题。在执行导入“商品资料”的时候,出现如下提示

 

.NET Framework 版本:2.0.50727.3643
Foxtable 版本:2016.6.26.1
错误所在事件:表,商品资料,DataColChanged
详细错误信息:
调用的目标发生了异常。
未将对象引用设置到对象的实例。

 

说明:商品资料的事件DataColChanged栏中有一关于,批号自动生成有效期的代码,

Select Case e.DataCol.Name
    Case "批号"
        Dim s As String = CStr(e.NewValue)
        Dim d As Date =new Date(s.SubString(0,4),s.SubString(4,2),s.SubString(6,2))
        d = d.AddYears(1).AddDays(-1)
        e.DataRow("有效期") = Format(d,"yyyyMMdd")
End Select

这二者为什么会提示冲突,使导入数据无法进行,还至致死机。


--  作者:zch1104
--  发布时间:2016/8/2 22:23:00
--  

谢谢,解答!!

 


--  作者:Hyphen
--  发布时间:2016/8/3 8:55:00
--  
试试

Select Case e.DataCol.Name
    Case "批号"
if e.NewValue > "" andalso e.NewValue .length >= 8 then
        Dim s As String = CStr(e.NewValue)
        Dim d As Date =new Date(s.SubString(0,4),s.SubString(4,2),s.SubString(6,2))
        d = d.AddYears(1).AddDays(-1)
        e.DataRow("有效期") = Format(d,"yyyyMMdd")
end if
End Select