Foxtable(狐表)用户栏目专家坐堂 → 如何判断删除行的某个字段不为空


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

主题:如何判断删除行的某个字段不为空

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


加好友 发短信
等级:八尾狐 帖子:1916 积分:17140 威望:0 精华:0 注册:2014/7/29 19:09:00
如何判断删除行的某个字段不为空  发帖心情 Post By:2017/10/28 8:58:00 [只看该作者]

'---获取已删除行(通过sql事务一次性删除)
Dim systable As System.Data.DataTable = tb.BaseTable
Dim ChangeTable As System.Data.DataTable = systable.GetChanges(System.Data.DataRowState.Deleted)
If ChangeTable IsNot Nothing Then
    Dim strIDC As String = "" '单据识别列
    For Each cdr As System.Data.DataRow In ChangeTable.Rows  '遍历删除行
        '--集合所有删除表单的单据识别列
        If cdr(dr("IDC"),System.Data.DataRowVersion.Original) > "" Then  '单据识别列不为空
            strIDC + = cdr(dr("IDC"),System.Data.DataRowVersion.Original)
        End If
    Next
End If

上面红色的表示删除掉的行的IDC字段不为空时才执行,但这样写提示出错,要怎么写才行?

谢谢!

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107772 积分:548205 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/10/28 9:07:00 [只看该作者]


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


加好友 发短信
等级:八尾狐 帖子:1916 积分:17140 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2017/10/28 9:24:00 [只看该作者]

 If cdr.Isnull(dr("IDC"),System.Data.DataRowVersion.Original) = False Then  '单据识别列不为空

这样也会出错,提示"无法将类型为“System.String”的对象强制转换为类型“System.Data.DataColumn”。

                        

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107772 积分:548205 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/10/28 10:16:00 [只看该作者]

If cdr.Isnull("IDC") = False Then 

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


加好友 发短信
等级:八尾狐 帖子:1916 积分:17140 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2017/10/28 10:42:00 [只看该作者]

不能直直接那样用, dr("IDC") 是引用的变量,比如订单其值为订单编号,采购单则为采购单号

 For Each cdr As System.Data.DataRow In ChangeTable.Rows  '遍历删除行
        '--集合所有删除表单的单据识别列
        If cdr(dr("IDC"),System.Data.DataRowVersion.Original) > "" Then  '单据识别列不为空
            strIDC + = cdr(dr("IDC"),System.Data.DataRowVersion.Original)
        End If
    Next

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107772 积分:548205 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/10/28 10:58:00 [只看该作者]

这个意思?

dim idc as string = "订单编号"
If cdr.Isnull(idc) = False Then 
……

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


加好友 发短信
等级:八尾狐 帖子:1916 积分:17140 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2017/10/30 9:02:00 [只看该作者]

不是那个意思,用ft普通的删除这样写没错
if cdr.Isnull("订单编号") = false then 

而我是用sql删除后保存时要判断已经删除掉的行某列是否为空(要用其值回收自动编码,为空时会出错)

If cdr("订单编号",System.Data.DataRowVersion.Original) > "" Then  '单据识别列不为空
If cdr.Isnull("订单编号",System.Data.DataRowVersion.Original) = false Then  '单据识别列不为空

不是变量的问题,因为字段不为空时都不出错,而是后面加了System.Data.DataRowVersion.Original后写法的问题
两种写法都会出错,不知道要怎么写?

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


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

弹出值,看是什么

 

If cdr("订单编号",System.Data.DataRowVersion.Original).ToString > "" Then


 回到顶部