Solved

Help with using Gridview to save data in XML file

Posted on 2011-09-18
3
528 Views
Last Modified: 2012-05-12
Hi,

I have many questions on how to solve an issue, below are my following questions:

After I loading the grid with my Donorxml file.
1. How do I only add data in the grid if it doesn't already exist in Donor.xml? (If it does use the existing data to avoiding adding duplicate data)
2. If the data i enter in the grid is new, how do I save it in Donor.xml with a new ID?
3. When I select multiple rows in the grid and press Save, how do i save the IDs of the rows selected to my link.xml file
For  example when I enter:
BEL
CAN
USA
In Grid1 ( three rows of data)
I need to save them in Donor.xml  while I create new IDs as shown below:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Root>

  <Donor>

    <DonorID>1</DonorID>

    <Name>BEL</Name>

  </Donor>

  <Donor>

    <DonorID>2</DonorID>

    <Name>CAN</Name>

  </Donor>

  <Donor>

    <DonorID>3</DonorID>

    <Name>USA</Name>

  </Donor>

</Root>

And  at the same time save the newly created IDs to one record in my Link.xmk filke

  <Link>

    <LinkID>1</LinkID>

    <DonorID>1,2,3</DonorID>

  </Link>

 

How do I modify the code to use a grid for multiple entries and saving their IDs to link.xml?

Code: (This code works for entering a single country in a textbox and saving it to Donor.xml and it's ID to Link.xml, as mentioned, now I need to be able to save multiple IDs in Link.xml after selecting multiple rows in a Grid)

 

'Donor

        Dim MyDocDonor As XDocument = XDocument.Load(Application.StartupPath & "/Donor.xml")

        Dim LargestDonorID = (From el In MyDocDonor.Descendants("Donor") Select CInt(el.<DonorID>.Value)).ToList

        LargestDonorID.Sort()

        Dim CheckForItem = (From el In MyDocDonor.Descendants("Donor").Elements("Name") Select el.Value).ToList

        If Not CheckForItem.Contains(Me.TextBox1.Text.ToString) Then

            Dim xNew As XElement = New XElement("Donor")

            xNew.Add(New XElement("DonorID", (LargestDonorID.Last() + 1)))

            xNew.Add(New XElement("Name", Me.TextBox1.Text.ToString))

            MyDocDonor.Root.Add(xNew)

            MyDocDonor.Save(Application.StartupPath & "/Donor.xml")

        End If

        'Link

        Dim MyDocLink As XDocument = XDocument.Load(Application.StartupPath & "/Link.xml")

        Dim LinkID = (From el In MyDocLink.Descendants("Link") Select CInt(el.<LinkID>.Value)).ToList

        LinkID.Sort()

        Dim xNewLink As XElement = New XElement("Link")

        xNewLink.Add(New XElement("LinkID", (LinkID.Last() + 1)))

        xNewLink.Add(New XElement("DonorID", (LargestDonorID.Last() + 1)))

        MyDocLink.Root.Add(xNewLink)

        MyDocLink.Save(Application.StartupPath & "/Link.xml")

Thanks,

Victor


0
Comment
Question by:vcharles
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
3 Comments
 
LVL 16

Accepted Solution

by:
Easwaran Paramasivam earned 500 total points
ID: 36558256
You can use Dataset's WriteXML method to create XML file from Gridview. Refer: http://forums.asp.net/t/1000516.aspx/1

To form Link.xml traverse each row of the grid. Refer: http://forums.asp.net/t/998341.aspx/1

To avoid duplicate rows to be entered in a grid view refer http://usingaspdotnet.blogspot.com/2011/03/avoid-insertion-of-duplicate-using.html.
0
 

Author Comment

by:vcharles
ID: 36570053
Hello,

Thank you for the links but they did not address my issue with xml and vb.bet, can you please help me with the code I posted in muy initial post, to help prevent entering duplicate data in a GriView using XML as a datasource?

Thanks,

Victor
0
 

Author Closing Comment

by:vcharles
ID: 36581829
Thank You!
0

Featured Post

Creating Instructional Tutorials  

For Any Use & On Any Platform

Contextual Guidance at the moment of need helps your employees/users adopt software o& achieve even the most complex tasks instantly. Boost knowledge retention, software adoption & employee engagement with easy solution.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In an ASP.NET application, I faced some technical problems. In this article, I list them out and show the solutions that I found.  I hope it will be useful. Problem: After closing a pop-up window, the parent page should be refreshed automaticall…
Today is the age of broadband.  More and more people are going this route determined to experience the web and it’s multitude of services as quickly and painlessly as possible. Coupled with the move to broadband, people are experiencing the web via …
In this video, viewers are given an introduction to using the Windows 10 Snipping Tool, how to quickly locate it when it's needed and also how make it always available with a single click of a mouse button, by pinning it to the Desktop Task Bar. Int…
Do you want to know how to make a graph with Microsoft Access? First, create a query with the data for the chart. Then make a blank form and add a chart control. This video also shows how to change what data is displayed on the graph as well as form…

623 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question