Foxtable(狐表)用户栏目专家坐堂 → [求助]关于报错


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

主题:[求助]关于报错

美女呀,离线,留言给我吧!
Springamy
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:427 积分:2969 威望:0 精华:0 注册:2017/4/6 15:51:00
[求助]关于报错  发帖心情 Post By:2018/6/25 15:38:00 [只看该作者]


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

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

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

 

 

你好!

 如图 ,这是一个添加行数据的功能,在弹出的窗口中列所赋的值都是正确的,

但是不能填充到表的列中,并报错,请帮忙看看哪里出错

代码可以执行添加行addnew,并执行cpr("校验")="已成功添加!"
,但是就是中间添加行填充数据哪里不执行,并报上图错误,masbox弹出数据正确的

 

For Each Ary As String() In Arys
    cpr= DataTables("添加产品").Find("变更后的长编码='" & ary(0)  & "'" )
    ' msgbox(cpr("变更后的长编码") & " , " & cpr("短编码")  & " , " & cpr("产品大类"))
    If  cpr IsNot Nothing Then
        If cpr("长编码")="" Then
            If cpr("校验").Contains("OK") Then
                dr  = DataTables("窗口_Table2").Find("长编码='" &  ary(0) & "'")
               
                If dr Is Nothing Then  '找不到
                    Dim k3s As String =cpr("变更后的长编码").SubString(0,cpr("变更后的长编码").LastIndexOf(".") )
                    msgbox("K3S='" & k3s & "'")
                   cmd.CommandText = "select * fr om t_item where Flevel = 2 AND FNumber ='" & k3s & "'and FItemClassID=4"
                   
                    Dim dt As DataTable = cmd.ExecuteReader
                    If dt.DataRows.Count>0 Then
                        msgbox(ary(0) )
                        r=Tables( "窗口_Table2" ).AddNew
                        r("类别码") = 4  

                        r("上级节点") = dt.DataRows(0)("FParentID")
                        r("层数") = 3
                        r("长编码") = ary(0)
                        r("短编码")=ary(1)
                        r("型号") = cpr("型号")
                        r("描述") = cpr("描述")
                        r("FExternID") = -1
                        r("FDetail") =1
                        r("FBrNo") =0
                        r("FFullNumber") = ary(0)
                        r("FDiff") =0
                        r("FDeleted") =0
                        r("UUID") =""
                        r("FGRCommonID") =-1
                        r("FSystemType") =1
                        r("FUseSign") =0
                        r("FAccessory") =0
                        r("FGrControl") =0
                        r("FModifyTime") =""
                        r("FHavePicture") =0
                                                                                            
                        cpr("校验")="已成功添加!"
                    Else
                        cpr("校验")="已重复,不能添加!"
                    End If
                End If
            End If
        End If
        DataTables("窗口_Table2").Save

     


 


 回到顶部
美女呀,离线,留言给我吧!
Springamy
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:427 积分:2969 威望:0 精华:0 注册:2017/4/6 15:51:00
  发帖心情 Post By:2018/6/25 15:39:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:4.png
图片点击可在新窗口打开查看
表结构如上图

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


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

表结构有问题,每个列的属性 允许null设置成true。不然,你每个列都必须输入值,才能保存。

 

对于唯一值的判断,约束为唯一的列,也必须唯一才行。


 回到顶部
美女呀,离线,留言给我吧!
Springamy
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:427 积分:2969 威望:0 精华:0 注册:2017/4/6 15:51:00
  发帖心情 Post By:2018/6/25 16:58:00 [只看该作者]

表结构是规定这样的,我也是全部列都有赋值,FitemClassID不是唯一的,是外键,为什么报错说类别码被束缚为唯一的值,

长编码确实是唯一的 我在添加之前有校验数据,确定原来数据库没有这个长编码才添加的.

主要问题在于,代码执行了AddNew,添加行,赋值的代码全部没有执行,然后执行最后一个赋值,给临时表校验列赋值"已成功添加"

但是事实上只添加了行,数据并没有填充.


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


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

Tables( "窗口_Table2" ).AddNew

 

试试改成

 

Dim ndr As DataRow = Tables( "窗口_Table2" ).DataTable.AddNew

 

-----------------

 

是addnew的时候,就报错了,还是赋值的时候报错,还是保存的时候报错?


 回到顶部