473,385 Members | 1,400 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,385 software developers and data experts.

LoadDataRow issues

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.WriteXml(xmlDestFile, XmlWriteMode.WriteSchema)

dsDest.Dispose()

dsSource.Dispose()

Catch myex As Exception

MsgBox(myex.ToString, MsgBoxStyle.Information +
MsgBoxStyle.OKOnly, "Test")

End Try
Nov 20 '05 #1
2 1442
Cor
Hi VJ,

First a qeustion, will you when you send again some code first copy it in
your notepad, copy it from there and then paste it in the message, now we
get code with 5 rows spaces in every row and have first to do your job.

I did not look to deep in the code, because there is something (I did put it
on the line below) you maybe did not see.

I hope it was it?

Cor
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)
Here you are reading the same xml file in both datasets, so the rows will
always be the same and if I look in a glance at your code "copyRowNotPersent
is always true" and nothing will be copied.
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.WriteXml(xmlDestFile, XmlWriteMode.WriteSchema)
dsDest.Dispose()
dsSource.Dispose()
Catch myex As Exception
MsgBox(myex.ToString, MsgBoxStyle.Information +
MsgBoxStyle.OKOnly, "Test")
End Try

Nov 20 '05 #2
VJ
Maybe my variable declaration was not right... yes when the rows are present
the value will be set to true, which is what I except. When it is set to
true, I want to overwrite the values coming from the destination file..
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 copyRowPersent As Boolean

For Each rwDest In dsDest.Tables(0).Rows
If rwDest.Item("Name") = rwSource.Item("Name") Then
copyRowPersent = True
Exit For
End If
Next

If copyRowPersent Then

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() ' I get a
primary key voilation problem here...

else
'Import the new rows here using ImportRow

End If

Next

dsDest.AcceptChanges()
dsDest.WriteXml(xmlDestFile, XmlWriteMode.WriteSchema)
dsDest.Dispose()
dsSource.Dispose()

Catch myex As Exception

MsgBox(myex.ToString, MsgBoxStyle.Information +
MsgBoxStyle.OKOnly, "Test")

End Try
and sorry about that code not being formatted... I usually do it... but it
was late in the night and I missed doing it...

Hope somebody can still help with my problem...

VJ

"Cor" <no*@non.com> wrote in message
news:ue****************@TK2MSFTNGP09.phx.gbl...
Hi VJ,

First a qeustion, will you when you send again some code first copy it in
your notepad, copy it from there and then paste it in the message, now we
get code with 5 rows spaces in every row and have first to do your job.

I did not look to deep in the code, because there is something (I did put it on the line below) you maybe did not see.

I hope it was it?

Cor
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)
Here you are reading the same xml file in both datasets, so the rows will
always be the same and if I look in a glance at your code

"copyRowNotPersent is always true" and nothing will be copied.
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.WriteXml(xmlDestFile, XmlWriteMode.WriteSchema)
dsDest.Dispose()
dsSource.Dispose()
Catch myex As Exception
MsgBox(myex.ToString, MsgBoxStyle.Information +
MsgBoxStyle.OKOnly, "Test")
End Try


Nov 20 '05 #3

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
by: Tom Loredo | last post by:
Hi folks- I'm about to move from a Solaris 8/SPARC environment to a Dell running RedHat 9. Are there any issues I need to be aware of in bringing my Python code over (mostly scientific...
28
by: grahamd | last post by:
Who are the appropriate people to report security problems to in respect of a module included with the Python distribution? I don't feel it appropriate to be reporting it on general mailing lists.
2
by: malcolm | last post by:
Hello, We have a robust (.NET 1.1 c# winforms) client-server application that utilizes many typed DataSets, typed DataTables and typed DataRows. Our application is a series of windows and popup...
2
by: Dennis C. Drumm | last post by:
The description for DataTable.LoadDataRow says: Finds and updates a specific row. If no matching row is found, a new row is created using the given values. So I would think from that, that I...
3
by: VJ | last post by:
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...
1
by: GaryDean | last post by:
We have been developing all of our .net applications on 32 bit windows using 32 bit SQL Server. We are being asked to now deploy to servers running 64bit windows and 64bit SQL Server. Are there...
0
by: Anil Gupte | last post by:
The documentation says that LoadDataRow updates or inserts based upon whether the row exists or not. It does not say so in the documentation, but I figured the only way for it to know that is for...
3
by: eschneider | last post by:
Just some common issues with WS: Using custom objects: When objects change, seems you are always fixing some issue. Update references, which sometimes does not work. Deployment: Weird errors...
1
by: CloudSolutions | last post by:
Introduction: For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
0
by: Faith0G | last post by:
I am starting a new it consulting business and it's been a while since I setup a new website. Is wordpress still the best web based software for hosting a 5 page website? The webpages will be...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.