Foxtable(狐表)用户栏目专家坐堂 → 这种用法下如何判断列的类型?


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

主题:这种用法下如何判断列的类型?

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


加好友 发短信
等级:八尾狐 帖子:1934 积分:17661 威望:0 精华:0 注册:2014/7/29 19:09:00
这种用法下如何判断列的类型?  发帖心情 Post By:2017/3/27 20:26:00 [只看该作者]

Dim t1 As System.Data.DataTable = t.GetChanges(System.Data.DataRowState.Added )   '新增行
If t1 IsNot Nothing Then
    For Each dr As object In t1.Rows
        For Each dc As object In t1.Columns
            If dc.Isnumeric or dc.IsBoolean Then
msgbox(1)
            End If
        Next
     Next
End If

上面红色的写法是错误的,要如何写才正确?

谢谢!

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


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


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


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

不知道怎么用啊,下面这样也不对,

  For Each dc As object In t1.Columns
       'If dc.Isnumeric or dc.IsBoolean Then
       If dc.DataType = System.Type.GetType("System.Boolean") Then
msgbox(1)
        End If
 Next

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


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

If dc.DataType.ToString() = "System.Boolean" Then

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


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

foxtabel中判断数据类型只要Isnumeric就可以判断是数字,但用这个datatype里面有很多,int16,int32,int64,double,decimal难道要一种一种的判断?

还有
Dim t1 As System.Data.DataTable = t.GetChanges(System.Data.DataRowState.deleted )   '删除行
If t1 IsNot Nothing Then
    dim ids as integer
    For Each dr As object In t1.Rows
      ids =  "," & dr("_identify")
    next
.....
end if
 目的就是想得到所有的_Identify的集合,然后一用一句sql语句delete 表A where _identify in (" & ids & ")”就完成
但上面语句会提示行已删除的错误,这种用法下要如何才能实现这种功能.
谢谢!



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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/28 16:46:00 [只看该作者]

1、你写一个 Isnumeric 函数判断不就好了?

 

2、

 

Dim systable As System.Data.DataTable = CurrentTable.DataTable.BaseTable
Dim ChangeTable As System.Data.DataTable
ChangeTable = systable.GetChanges(System.Data.DataRowState.Deleted)
If ChangeTable IsNot Nothing Then
    For Each dr As System.Data.DataRow In ChangeTable.Rows    '循环获取修改语句
        Dim str = dr("_Identify", System.Data.DataRowVersion.Original)
        output.show(str)
    Next
End If


 回到顶部