none
merge vb net RRS feed

Ответы

  • Здравствуйте.

    Сама по себе Merge не приводит к отметке строк как новые, изменненные или удаленные, поэтому метод HasChanges возвращает false, если до этого ни в одном из DataSet-ов не были изменены строки или перед вызовом Merge был вызван AcceptChanges.

    Dim ds As DataSet = New DataSet
    Dim dt As DataTable = New DataTable
    dt.Columns.Add("id", GetType(System.Int32))
    dt.Columns.Add("name", GetType(System.String))
    ds.Tables.Add(dt)
    dt.Rows.Add(1, "1")
    dt.Rows.Add(2, "2")
    dt.Rows.Add(3, "3")
    Dim ds2 As DataSet = New DataSet
    Dim dt2 As DataTable = New DataTable
    dt2.Columns.Add("id", GetType(System.Int32))
    dt2.Columns.Add("name", GetType(System.String))
    ds2.Tables.Add(dt2)
    dt2.Rows.Add(4, "4")
    dt2.Rows.Add(5, "5")
    dt2.Rows.Add(6, "6")
    ' если законментировать одну из строк или обе,
    ' то HasChanges вернет true
    ds.AcceptChanges
    ds2.AcceptChanges
    ds2.Merge(ds, true)
    If ds2.HasChanges Then
        MessageBox.Show("changes")
    Else
        MessageBox.Show(ds2.Tables(0).Rows.Count.ToString)
    End If
    

    Для связи [mail]
    • Помечено в качестве ответа Abolmasov Dmitry 27 декабря 2011 г. 12:58
    22 декабря 2011 г. 15:32