Foxtable(狐表)用户栏目专家坐堂 → [求助]数据导入和保存问题


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

主题:[求助]数据导入和保存问题

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


加好友 发短信
等级:一尾狐 帖子:409 积分:3022 威望:0 精华:0 注册:2012/1/19 10:11:00
[求助]数据导入和保存问题  发帖心情 Post By:2014/4/11 14:17:00 [只看该作者]

有2个问题,独立的,互不相干的。一个一个说:

 

1、外部数据源,保存的时候有时会弹出这样的警告窗口:

 


图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:2.jpg
图片点击可在新窗口打开查看

具体是什么原因呢?

 

2、数据导入,弹出

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20140411133942.jpg
图片点击可在新窗口打开查看

 

其中s2室藏文件datacolchanged代码:


Select Case e.DataCol.Name
    Case "案卷号"
        Dim pr As DataRow = e.DataRow.GetParentRow("S1室藏案卷")
        If pr IsNot Nothing Then
            e.DataRow("全宗号") = pr("全宗号")
            e.DataRow("分类号") = pr("分类号")
            e.DataRow("年度") = pr("年度")
            e.DataRow("保管期限") = pr("保管期限")
            e.DataRow("责任者") = pr("责任者")
        End If
 Case "件号"
        Dim dr As DataRow = e.DataRow
        If dr.isnull("案卷号")=False OrElse dr("案卷号") <> "" Then
             e.DataRow("档号") = dr("案卷号") & "-" & dr("件号")
        Else
            If dr("保管期限") = "永久" Then
               If e.DataCol.Name = "分类号" OrElse e.DataCol.Name = "年度" OrElse e.DataCol.Name = "件号" Then
                  If dr("分类号") = 1 Or dr("分类号") = 2 Or dr("分类号") = 3 Or dr("分类号") = 4 Then
                     e.DataRow("档号") = dr("分类号") & "-" & dr("年度") & "Y-" & dr("件号")
                  End If
               End If
            Else If dr("保管期限") = "长期" Or dr("保管期限") = "30年" Or dr("保管期限") = "30" Or dr("保管期限") = "25年" Or dr("保管期限") = "25" Then
               If e.DataCol.Name = "分类号" OrElse e.DataCol.Name = "年度" OrElse e.DataCol.Name = "件号" Then
                  If dr("分类号") = 1 Or dr("分类号") = 2 Or dr("分类号") = 3 Or dr("分类号") = 4 Then
                     e.DataRow("档号") = dr("分类号") & "-" & dr("年度") & "C-" & dr("件号")
                  End If
                End If
            Else If dr("保管期限") = "短期" Or dr("保管期限") = "15年" Or dr("保管期限") = "15" Or dr("保管期限") = "10年" Or dr("保管期限") = "10" Then
               If e.DataCol.Name = "分类号" OrElse e.DataCol.Name = "年度" OrElse e.DataCol.Name = "件号" Then
                  If dr("分类号") = 1 Or dr("分类号") = 2 Or dr("分类号") = 3 Or dr("分类号") = 4 Then
                     e.DataRow("档号") = dr("分类号") & "-" & dr("年度") & "D-" & dr("件号")
                  End If
                End If
           End If
       End If
End Select

 

 

数据库除主键外其他字段均是字符串型的。

外部excel数据导入弹出前面的错误,我仔细检查,没有发现空数据,怎么会出现“”转换double出现错误呢?

 

[此贴子已经被作者于2014-4-11 14:18:25编辑过]

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/4/11 14:18:00 [只看该作者]

呵呵,肯定有你妹发现而已.

建议你导入少量数据,然后用这个方法:
http://www.foxtable.com/help/topics/1485.htm

先找出是哪一行出错,然后分析原因,搞不定,上例子.

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


加好友 发短信
等级:一尾狐 帖子:409 积分:3022 威望:0 精华:0 注册:2012/1/19 10:11:00
  发帖心情 Post By:2014/4/11 14:22:00 [只看该作者]

我已经显示详细信息打钩了,问题我是解决了,但是不明白为什么会这样的,我把外部excel数据中的有一列“件号”,删除,重新输入数据,导入,可以的,但是我看来看去原本的件号列没有问题,和代码也没有数值上的关系。还有第二种解决方法是,我把这句代码:dr("分类号") = 1 Or dr("分类号") = 2  Or dr("分类号") = 3 Or dr("分类号") = 4 数字全部加上引号,变成dr("分类号") = "1" Or dr("分类号") = "2" Or dr("分类号") = "3" Or dr("分类号") = "4",这样数据也可以正常导入的,看不明白报错的原因。
[此贴子已经被作者于2014-4-11 14:23:39编辑过]

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/4/11 14:28:00 [只看该作者]

说明dr("分类号") 是字符串列,并且有可能是空值.

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


加好友 发短信
等级:一尾狐 帖子:409 积分:3022 威望:0 精华:0 注册:2012/1/19 10:11:00
  发帖心情 Post By:2014/4/11 14:31:00 [只看该作者]

对,是字符串列,但是外部数据导入不是有个预览的窗口的,我每行都看了,分类号非空的,另外我也试过了,分类号这列不导入,同样报错,只要把件号这列删除,才正常导入。很奇怪

 

把原始数据也发上来

 

 

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

 

 

[此贴子已经被作者于2014-4-11 14:35:30编辑过]

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/4/11 14:34:00 [只看该作者]

你这里用它来判断了,只要执行到这行代码就会报错.

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


加好友 发短信
等级:一尾狐 帖子:409 积分:3022 威望:0 精华:0 注册:2012/1/19 10:11:00
  发帖心情 Post By:2014/4/11 14:37:00 [只看该作者]

可是删除件号列为什么导得进的,我以前的数据一直导得进的,就今天出现。


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/4/11 14:40:00 [只看该作者]

例子发上来看看,不过既然是字符串列,当然要当作字符串对比.正常的写法就应该加双引号.

 回到顶部
帅哥哟,离线,有人找我吗?
云淡风轻
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:409 积分:3022 威望:0 精华:0 注册:2012/1/19 10:11:00
  发帖心情 Post By:2014/4/11 14:49:00 [只看该作者]

链接内网数据源的,不上例子了,一般这种情况出现比较少,大多excel中格式输的正确都不会这样的,有些人在EXcel中录入数据时,某列有好几种格式,导入就可能有问题。


 回到顶部