以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]如何检测一个表是否有行删除了?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=20721)

--  作者:liguichuan
--  发布时间:2012/6/18 0:10:00
--  [求助]如何检测一个表是否有行删除了?

有一个窗体中有一按钮,名称为“退出窗口”

想实现当没有数据修改时,直接退出。

当有数据修改时(包括新增行、删除行、修改行三种状态)时给出提问是否对数据进行保存。点击是进行保存,否撤消对表的修改并退出窗口。

按钮代码如下:

\'\'\'
For Each dr As DataRow In CurrentTable.DataTable.DataRows
    If dr.RowState <> DataRowState.Unchanged Then \'如果不是未曾修改的行,执行保存提示
        Dim Result As DialogResult
        Result = MessageBox.Show("您尚有数据未曾保存。是否进行保存操作后再退出!","保存提示!",MessageBoxButtons.YesNo,MessageBoxIcon.Question)
        If Result = DialogResult.Yes Then
            CurrentTable.DataTable.Save() \'保存数据
            MessageBox.Show("保存数据成功!","操作提示!",MessageBoxButtons.OK,MessageBoxIcon.Information)
            e.Form.Close() \'退出窗口
        Else
            CurrentTable.DataTable.RejectChanges() \'撤消修改
            e.Form.Close() \'退出窗口
        End If
    Else
        e.Form.Close() \'没有存在未修改或新增的行时直接退出窗口
    End If
Next

 

现在没有改过数据时可以实现需求;

修改数据、新增行时也可以实现需求。

但是当删除了行时并不会给出提示,而是直接退出了窗口,相当于没有数据修改。

请问如何修改?谢谢。

 

 


图片点击可在新窗口打开查看此主题相关图片如下:rowstate.png
图片点击可在新窗口打开查看

--  作者:狐狸爸爸
--  发布时间:2012/6/18 10:59:00
--  

看看这个属性:

 

http://www.foxtable.com/help/topics/0387.htm

 


--  作者:liguichuan
--  发布时间:2012/6/18 15:21:00
--  

谢谢,可以实现。

但是还是没有搞明白为什么原来的写法无法检测到删除的行?

不是有这样的属性吗?