以下是引用zerov在2013-5-9 6:52:00的发言:1、将所有表的审核列设置为:如果已经审核,则不允许修改
For Each dt As DataTable In DataTables '遍历所有表
For Each dc As Datacol In dt.Datacols ‘遍历所有列
if e.datacols.name = "审核" then ’如果是审核列
if e.datacols("审核")= true then ‘如果已经审核
e.datarow("审核").AllowEdit = True 则锁定该行,此行不允许修改
end if
end if
next
next
疑问:1、此句对不对?
2、此句是不是设定在datatablechanging中
3、这种嵌套遍历是不是会很慢?
如果想把所有表设置为当前行为突出显示呢,又如何做?
For Each dt As DataTable In DataTables '遍历所有表
If dt.DataCols.Contains("审核") Then
Dim cmd As new SQLCommand
cmd.CommandText = "update {" & dt.Name & "} set [_Locked] = true where [审核] = true "
cmd.ExecuteNonQuery
dt.Load
End If
Next
只要设置一个按钮执行就行了,不需要放到表事件里,而且这个只需要执行一次,不需要每次启动执行,锁定行是永久性的