以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]表中数据的判断,并保存?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=73223)

--  作者:cqlwsam
--  发布时间:2015/8/14 15:07:00
--  [求助]表中数据的判断,并保存?

在窗口关闭前对窗口中表(table1)的数据进行判断,如果有新增或修改,则提示是否需要保存,如果点击YEs就保存,如果点击否就reject掉后直接退出。现在对datatable及table有点混淆,大大们看看,下面的代码老是有问题。

 

Dim t As Table=Tables("医生排班表")
Dim dt As DataTable = DataTables("医生排班表")
Dim num As Integer=t.count
Dim num1 As Integer=0
For Each dr As DataRow In dt.DataRows
    If dr.RowState = DataRowState.unchanged Then
        num1 = num1 + 1
    End If
Next
If num>num1 Then
    Dim Result As DialogResult
    Result = MessageBox.Show("排班表已经修改,是否需要保存?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
    If Result = DialogResult.Yes Then
        For Each dr1 As DataRow In dt.DataRows
            If dr1.RowState <> DataRowState.unchanged Then
                t.Current.Save()
            End If
        Next
        t.Refresh()
    Else
        t.current.Reject()
        t.Refresh()
        \'     e.Close()
    End If
Else
    Forms("排班窗口").Close
End If

 


--  作者:有点蓝
--  发布时间:2015/8/14 15:25:00
--  
Dim dt As DataTable = DataTables("排班窗口")
Dim num1 As Integer=0
For Each dr As DataRow In dt.DataRows
    If dr.RowState <> DataRowState.unchanged Then
        num1 = num1 + 1
    End If
Next
If num1>0 Then
    Dim Result As DialogResult
    Result = MessageBox.Show("排班表已经修改,是否需要保存?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
    If Result = DialogResult.Yes Then
        For Each dr1 As DataRow In dt.DataRows
            If dr1.RowState <> DataRowState.unchanged Then
                dr1.Save()
            End If
        Next
    Else
         dt.RejectChanges()
    End If
    CurrentTable.Refresh()    
   Forms("排班窗口").Close
Else
    Forms("排班窗口").Close
End If
[此贴子已经被作者于2015/8/14 15:27:03编辑过]

--  作者:大红袍
--  发布时间:2015/8/14 15:51:00
--  

有必要这么麻烦么?

 

Dim dt As DataTable = DataTables("医生排班表")
If dt.HasChanges Then
    Dim Result As DialogResult
    Result = MessageBox.Show("排班表已经修改,是否需要保存?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
    If Result = DialogResult.Yes Then
        dt.Save
    Else
        dt.RejectChanges
    End If
Else
    Forms("排班窗口").Close
End If


--  作者:cqlwsam
--  发布时间:2015/8/14 16:03:00
--  
大红袍。厉害!我在帮助里面找了半天就没有发现有这个haschanges