V
VJ
Hi..
I have 2 datasets, each with a DataTable. Each table has the same primary
key, and columns. I am trying to copy rows from one dataset to another,
based on an event from my application.
It all works fine when the row is not present in the destination DataTable.
Now when the row is present in the destination file, the .NET documentation
says use the LoadRowData method of the dataset to copy the row. When do
this, I get a unique key violation problem (right at the EndLoadData point
in the code below).. Here is my code below. Can anybody help??
Dim app As Application
Dim xmlDestFile As String = app.StartupPath & "\" & "dest.xml"
Dim xmlSourceFile As String = app.StartupPath & "\" & "source.xml"
Dim dsDest As New DataSet
Dim dsSource As New DataSet
Dim rwDest As DataRow
Dim rwSource As DataRow
dsDest.ReadXml(xmlDestFile)
dsSource.ReadXml(xmlDestFile)
Try
For Each rwSource In dsSource.Tables(0).Rows
Dim copyRowNotPersent As Boolean
For Each rwDest In dsDest.Tables(0).Rows
If rwDest.Item("Name") = rwSource.Item("Name") Then
copyRowNotPersent = True
Exit For
End If
Next
If Not copyRowNotPersent Then
Else
Dim newRow(rwSource.Table.Columns.Count - 1) As Object
Dim column As DataColumn
Dim intLoop As Int32
intLoop = 0
For Each column In rwSource.Table.Columns
newRow(intLoop) = rwSource.Item(column)
intLoop = intLoop + 1
Next
dsDest.Tables(0).BeginLoadData()
dsDest.Tables(0).LoadDataRow(newRow, False)
dsDest.Tables(0).EndLoadData()
End If
Next
dsDest.AcceptChanges()
dsDest.Write(xmlDestFile, XmlWriteMode.WriteSchema)
dsDest.Dispose()
dsSource.Dispose()
Catch myex As Exception
MsgBox(myex.ToString, MsgBoxStyle.Information +
MsgBoxStyle.OKOnly, "Test")
End Try
I have 2 datasets, each with a DataTable. Each table has the same primary
key, and columns. I am trying to copy rows from one dataset to another,
based on an event from my application.
It all works fine when the row is not present in the destination DataTable.
Now when the row is present in the destination file, the .NET documentation
says use the LoadRowData method of the dataset to copy the row. When do
this, I get a unique key violation problem (right at the EndLoadData point
in the code below).. Here is my code below. Can anybody help??
Dim app As Application
Dim xmlDestFile As String = app.StartupPath & "\" & "dest.xml"
Dim xmlSourceFile As String = app.StartupPath & "\" & "source.xml"
Dim dsDest As New DataSet
Dim dsSource As New DataSet
Dim rwDest As DataRow
Dim rwSource As DataRow
dsDest.ReadXml(xmlDestFile)
dsSource.ReadXml(xmlDestFile)
Try
For Each rwSource In dsSource.Tables(0).Rows
Dim copyRowNotPersent As Boolean
For Each rwDest In dsDest.Tables(0).Rows
If rwDest.Item("Name") = rwSource.Item("Name") Then
copyRowNotPersent = True
Exit For
End If
Next
If Not copyRowNotPersent Then
Else
Dim newRow(rwSource.Table.Columns.Count - 1) As Object
Dim column As DataColumn
Dim intLoop As Int32
intLoop = 0
For Each column In rwSource.Table.Columns
newRow(intLoop) = rwSource.Item(column)
intLoop = intLoop + 1
Next
dsDest.Tables(0).BeginLoadData()
dsDest.Tables(0).LoadDataRow(newRow, False)
dsDest.Tables(0).EndLoadData()
End If
Next
dsDest.AcceptChanges()
dsDest.Write(xmlDestFile, XmlWriteMode.WriteSchema)
dsDest.Dispose()
dsSource.Dispose()
Catch myex As Exception
MsgBox(myex.ToString, MsgBoxStyle.Information +
MsgBoxStyle.OKOnly, "Test")
End Try