以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]老白,真心求老师指导! (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=31222) |
-- 作者:sadfox -- 发布时间:2013/4/11 22:40:00 -- [求助]老白,真心求老师指导! Select Case e.DataCol.Name
Case "类别" Dim drs As List(Of DataRow) = DataTables("表B").Select("[编号] = \'" & e.DataRow("编号") & "\'") If drs.Count > 0 For i As Integer = 0 To drs.Count-1 drs(i)("类别") = e.DataRow("类别") & Format(i+1,"00") Next Else For i As Integer = 1 To 30 Dim dr As DataRow = DataTables("表B").AddNew() dr("编号") = e.DataRow("编号") dr("类别") = e.DataRow("类别") & Format(i,"00") Next End If End Select 老白一个,真的不懂,求老师给个注释学习一下! |
-- 作者:e-png -- 发布时间:2013/4/11 23:17:00 -- 呵呵,这个看不懂就得加紧学习帮助文件了! 看看这样解释对不对,你参考吧::: Select Case e.DataCol.Name ‘这是说在表中你要编辑哪一列····· \' 这表B查找与本表当前行的“编号”列相同的记录s(行s)····· Next |
-- 作者:sadfox -- 发布时间:2013/4/11 23:36:00 -- 谢谢!这下清楚了! |
-- 作者:sadfox -- 发布时间:2013/4/11 23:48:00 -- Select Case e.DataCol.Name Case "类别" Dim drs As List(Of DataRow) = DataTables("表B").Select("[编号] = \'" & e.DataRow("编号") & "\'") If drs.Count > 0 For i As Integer = 0 To drs.Count-1 drs(i)("类别") = e.DataRow("类别") & Format(i+1,"00") Next Else For i As Integer = 1 To 30 Dim dr As DataRow dr = DataTables("产品").Find("[编号] = \'" & e.DataRow("编号") & "\'") 由于不需要增加行,我改成了这样,妥不?还有就是开始的那个可能是因为增加行的原因,表B的数据一多,删除行就程序就会卡死!
|
-- 作者:e-png -- 发布时间:2013/4/12 0:19:00 -- Dim dr As DataRow dr = DataTables("产品").Find("[编号] = \'" & e.DataRow("编号") & "\'") 因为上面的select也是找所有与本表当前行的编号相同的行(可能是多行),如果都没有找到,你这个也是找不到的。所以这个Else后面的代码就没有意义了。。。 |
-- 作者:sadfox -- 发布时间:2013/4/12 10:35:00 -- 以下是引用e-png在2013-4-12 0:19:00的发言:
Dim dr As DataRow dr = DataTables("产品").Find("[编号] = \'" & e.DataRow("编号") & "\'") 因为上面的select也是找所有与本表当前行的编号相同的行(可能是多行),如果都没有找到,你这个也是找不到的。所以这个Else后面的代码就没有意义了。。。 如果Else后面的代码就没有意义了,那类别的赋值不是就会一直增加下去,超过31了吗! |