以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 安条件锁定行 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=149667) |
||||
-- 作者:采菊东篱下 -- 发布时间:2020/5/8 21:49:00 -- 安条件锁定行 密码:888888
下面这段代码没Do语句前还能一行行锁定行,加了Do语句后报错了,我搞这个锁定行学了一晚,不想想了,还是直接请教专家吧,请问应怎么改? Dim cbo As WinForm.ComboBox = e.Form.Controls("ComboBox1") Dim di As String = cbo.Value Dim drs As List(Of DataRow) = DataTables("基本信息").Select("[棋赛名称] = \'" & di & "\'") Do While drs.count Dim idx As Integer = drs.count Dim dr As DataRow dr = DataTables("基本信息").DataRows(idx) If dr(idx)("比赛已结束") = False Then \'如果第一行没有锁定 dr(idx)("比赛已结束") = True dr(idx)("比赛已结束").Locked = True \'那么锁定此行 End If Loop DataTables("基本信息").save [此贴子已经被作者于2020/5/9 8:42:24编辑过]
|
||||
-- 作者:采菊东篱下 -- 发布时间:2020/5/9 9:03:00 -- 改为这样也不行 Dim cbo As WinForm.ComboBox = e.Form.Controls("ComboBox1") Dim di As String = cbo.Value Dim drs As List(Of DataRow) = DataTables("基本信息").Select("[棋赛名称] = \'" & di & "\'") For Each dr As DataRow In drs If dr("比赛已结束") = False Then \'如果第一行没有锁定 dr("比赛已结束") = True dr("比赛已结束").Locked = True \'那么锁定此行 End If Next DataTables("基本信息").save
|
||||
-- 作者:有点蓝 -- 发布时间:2020/5/9 9:52:00 -- Locked是DataRow的属性,而dr("比赛已结束")是指某个单元格的值 dr("比赛已结束").Locked = True 改为 dr.Locked = True 更有效率的用法
|
||||
-- 作者:采菊东篱下 -- 发布时间:2020/5/9 10:23:00 -- 谢谢,用你的方法成功了,这方法我完全没想到,我的思路只停留在帮助里的知识,弄来弄去就是不行!还想问多了,招人讨厌了!学习阶段,现在是通过实例练习加深学到的知识运用、认知,真很烦人,非常感谢。 [此贴子已经被作者于2020/5/9 10:32:11编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2020/5/9 10:28:00 -- 我的方法也都是帮助里的知识:http://www.foxtable.com/webhelp/topics/1532.htm |
||||
-- 作者:采菊东篱下 -- 发布时间:2020/5/9 10:42:00 -- 谢谢,那要用SQLReplaceFor,我的表是分页加载显示,听群里的人说最近会有一次200多人的比赛,因此一定要用后台数据,替换这个属性我看过,可完全没想到可以这样运用。 |