以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  概念的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=160743)

--  作者:狐狐妞
--  发布时间:2021/2/19 20:25:00
--  概念的问题
基础性的知识有点混淆了:

Dim drs As List(of DataRow)
drs = DataTables("总表").Select("[行状态] = \'锁定\'") 
If drs IsNot Nothing Then
    For Each dr As DataRow In drs
        dr.Locked = True
    Next
End If
‘’-------------------------------

在这里是判断DRS集合里有没有这一行, 那么   if drs isnot nothing 和 if drs.count >0 在运行中他们的区别在哪里?               



--  作者:有点蓝
--  发布时间:2021/2/20 9:37:00
--  
如果要在其它地方使用集合就是2楼说的。

但是如果放到select返回值,不需要做任何判断,因为select返回的不可能是空值,而如果没有返回结果就是drs.count=0,这时For Each 是不会执行的,所以直接这样即可

Dim drs As List(of DataRow)
drs = DataTables("总表").Select("[行状态] = \'锁定\'") 
    For Each dr As DataRow In drs
        dr.Locked = True
    Next

其实更简单的用法是
DataTables("总表").replacefor("_Locked",true,"[行状态] = \'锁定\'")