以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  这种用法下如何判断列的类型?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=98293)

--  作者:happyft
--  发布时间: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

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

谢谢!

--  作者:有点蓝
--  发布时间:2017/3/27 21:48:00
--  
https://msdn.microsoft.com/zh-cn/library/system.data.datacolumn.datatype(v=vs.80).aspx
--  作者:HappyFt
--  发布时间: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

--  作者:有点蓝
--  发布时间:2017/3/28 9:17:00
--  
If dc.DataType.ToString() = "System.Boolean" Then
--  作者:HappyFt
--  发布时间: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 & ")”就完成
但上面语句会提示行已删除的错误,这种用法下要如何才能实现这种功能.
谢谢!



--  作者:有点色
--  发布时间: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