DataRow概述

DataRow表示DataTable中的行。
通过DataRows集合,可以获得某一位置的DataRow(行)。

例如:

Dim dr As DataRow
dr =
DataTables("订单").DataRows(0)

变量dr引用了订单表的第一行。

注意这个第一行可能不是你看到的第一行,你看到的是Table中的第一行。

DataRow通过列名称来返回或设置各列的值,例如:

Dim dr As DataRow
dr
= DataTables("订单").DataRows(1) '引用第二行
dr
("数量") = 100 '设置该行数量列的值
dr
("单价") = 20 '设置该行单价列的值
Output
.Show(dr("金额")) '显示金额列的内容

DataRow的常用属性有:

名称 说明
IsNull 判断某一列的内容是否为空,通常用于判断某一列是否已经输入内容。
Locked 返回或设置行的锁定状态

例如:

With DataTables("订单").DataRows(0) '引用第一行
    If .
IsNull("结账日期") = False Then '如果已经输入结账日期
        .
Locked = True '那么锁定此行
    End If
End With

DataRow的常用方法有:

名称 说明
Save 保存行
Delete 删除行
Remove 移除行
Load 重新加载行,如果其他人已经修改并保存此行,执行此方法,即可将该行最新的内容同步显示在表中。
Reject 撤销自打开文件或最近一次保存以来,对该行做出的修改
GetChildRows 返回一个DataRow集合,集合中包括指定子表中和该行对应的全部关联行
GetParentRow 返回该行在指定父表中对应的关联行

例如:

With DataTables("订单")
    .
DataRows(0).Save() '保存第一行
    .
DataRows(1).Delete() '删除第二行
    .
DataRows(2).Load() '重新加载第三行
   
.DataRows(3).
Reject() '撤销对第四行的修改
End With

GetChildRows返回一个集合,这个集合包括指定子表中全部对应的关联行。
假定产品表和订单表之间通过产品编号建立了关联,下面的代码获得第一个产品的全部订单,并将这些订单的折扣设为0.1:

Dim drs As List(Of Datarow)
drs =
DataTables("产品").DataRows(0).GetChildRows("订单")
For Each
dr As DataRow In drs
    dr(
"折扣") = 0.1

Next

如果要返回父表中对应的关联行,需要使用GetParentRow方法。
例如要找出某一订单在父表(产品表)对应的关联行,可参考下面的代码:

Dim dr As DataRow = DataTables("订单").DataRows(0)
Dim
pr As DataRow = dr.GetParentrow("产品")
Output.Show(pr(
"产品名称"
))

Remove方法用于移除行,例如移除订单表的第一行:

DataTables("订单").DataRows(0).Remove()

移除行和删除行是不同的,移除只是使得表中暂时不再包括该行,就像该行从来没有被加载过一样;不管你是否保存文件,下次打开后,被移除的行还会出现。


本页地址:http://www.foxtable.com/webhelp/topics/1429.htm