以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  请教一个行状态的问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=56342)

--  作者:蓝色理想
--  发布时间:2014/9/3 14:24:00
--  请教一个行状态的问题
If e.OldRange.RowSel <> e.NewRange.RowSel \'如果选择的是不同的行
    If e.OldRange.RowSel >= 0 AndAlso e.OldRange.Rowsel < e.Table.Rows.Count Then \'而且原来选择的是一个有效的数据行
        Dim r As Row = e.Table.Rows(e.OldRange.Rowsel) \'获得原来选择的行
        If r.Locked <> True Then
            r.Locked = True
        End If
        If e.Table.Current.DataRow.RowState <> DataRowState.Unchanged Then
            r.Save() \'保存之
            MessageBox.Show("保存了")
        End If
    End If
End If

这段代码不能为啥不能自动保存?
难道这条语句 r.Locked = True
不会改变行状态?(已确定行没被锁定,这条语句执行后已执行了锁定操作)


--  作者:Bin
--  发布时间:2014/9/3 14:26:00
--  
上例子看看
--  作者:有点甜
--  发布时间:2014/9/3 14:31:00
--  
If e.OldRange.RowSel <> e.NewRange.RowSel \'如果选择的是不同的行
    If e.OldRange.RowSel >= 0 AndAlso e.OldRange.Rowsel < e.Table.Rows.Count Then \'而且原来选择的是一个有效的数据行
        Dim r As Row = e.Table.Rows(e.OldRange.Rowsel) \'获得原来选择的行
        r.Locked = True
        r.Save() \'保存之
        MessageBox.Show("保存了")
    End If
End If

--  作者:蓝色理想
--  发布时间:2014/9/3 14:32:00
--  
上述代码在 afterSelChange事件中
因为是SQL Server数据库,没法上代码啊

--  作者:Bin
--  发布时间:2014/9/3 14:33:00
--  
用3楼的代码
--  作者:蓝色理想
--  发布时间:2014/9/3 14:35:00
--  
三楼的肯定是可以,我加了判断只是为了降低一点不不要的损耗
--  作者:有点甜
--  发布时间:2014/9/3 14:48:00
--  
If e.OldRange.RowSel <> e.NewRange.RowSel \'如果选择的是不同的行
    If e.OldRange.RowSel >= 0 AndAlso e.OldRange.Rowsel < e.Table.Rows.Count Then \'而且原来选择的是一个有效的数据行
        Dim r As Row = e.Table.Rows(e.OldRange.Rowsel) \'获得原来选择的行
        If r.Locked <> True Then
            r.Locked = True
        End If
        If r.DataRow.RowState <> DataRowState.Unchanged Then
            r.Save() \'保存之
            MessageBox.Show("保存了")
        End If
    End If
End If

--  作者:蓝色理想
--  发布时间:2014/9/3 15:28:00
--  
ok了,啥原因啊
--  作者:蓝色理想
--  发布时间:2014/9/3 15:30:00
--  
 If r.DataRow.RowState <> DataRowState.Unchanged Then

我原来取得是新选择的行的状态
而不是原来选择行的状态

明白了,谢谢各位版主