以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求大神帮我分析下下面两条指令 每一句的 意思 谢谢  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=31901)

--  作者:lidesong
--  发布时间:2013/4/22 18:11:00
--  求大神帮我分析下下面两条指令 每一句的 意思 谢谢

Select Case e.DataCol.name
    Case "产品编号"
        Dim dr As DataRow = DataTables("库存").Find("产品编号 = \'" & e.OldValue & "\'")
       
If dr Is Nothing Then
            dr = DataTables(
"
库存").AddNew()
            dr(
"
产品编号") = e.DataRow("产品编号")
            dr(
"
产品名称") = e.DataRow("产品名称")
            dr(
"
产品规格") = e.DataRow("产品规格")
        Else
            dr(
"
产品编号") = e.DataRow("产品编号")
        End If
    Case
"
产品名称","产品规格"
        Dim dr As DataRow = DataTables(
"
库存").Find("产品编号 = \'" & e.DataRow("产品编号") & "\'")
        If dr IsNot Nothing Then
            dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
       
End If
End
Select

2、将产品表的DataRowDeleting事件代码设置为:

Dim dr As DataRow = DataTables("库存").Find("产品编号 = \'" & e.DataRow("产品编号") & "\'")
If
dr IsNot Nothing Then
    dr.
Delete()

End
If

 


--  作者:hanxuntx
--  发布时间:2013/4/22 18:24:00
--  

看看到底是【那一列的值】改变了
    如果是【产品编号】
        在【库存】表里试着找找产品编号没改变前的哪一行的数据,就把这一行命名为dr吧
        如果这一行数据不存在
            在【库存】表里面新增一行,也命名为dr吧
            dr的产品编号等于你现在修改的这一行的产品编号
            dr("产品名称") = e.DataRow("产品名称")
            dr("产品规格") = e.DataRow("产品规格")
        如果存在
            dr的产品编号等于你现在修改的这一行的产品编号
        结束
    Case "产品名称","产品规格"
        Dim dr As DataRow = DataTables("库存").Find("产品编号 = \'" & e.DataRow("产品编号") & "\'")
        If dr IsNot Nothing Then
            dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
        End If
End Select

2?将产品表的DataRowDeleting事件代码设置为:

Dim dr As DataRow = DataTables("库存").Find("产品编号 = \'" & e.DataRow("产品编号") & "\'")
If dr IsNot Nothing Then
    dr.Delete()
End If
 
呵呵 点到为止