My Anna

Indias Biggest Engineering Education Community Enriching Students Minds with Latest Placement Papers, Study Materials, Fresher Jobs and Free E Books

A Unit of Aim Clear Technologies Ltd.
Search Study Materials, Jobs, Placement Papers, Interview Tips, Training Videos & More

Advertise with us

Who is online



Post new topic Reply to topic  [ 1 post ] 

sreenath
Super Moderator
Super Moderator
User avatar

Joined:
Wed Aug 26, 2009 10:01 pm
Beans: 1,227
In Bank: 14665
College: ESEC
Degree: M.Sc
Department: CSE
State: TN
Fav Quote: no pain no gain
 
#2
Sat Oct 03, 2009 3:02 pm
Post subject: Serializing a ListView to XML Post
Why should I migrate to .NET? Another reason is Serialization (saving objects to files) to XML is so simple in NET.

In this article, I will show you how easy it is to save the contents of a ListView to an XML file and then reload the ListView from XML.

Three VB.NET methods are used in this article. The first method is SaveObjectProperties. In this application, I have a ListView with twenty-two columns in it. I have a need to save the contents of the ListView and the next time I run the application, I want to populate the ListView with the data that was loaded in it the last time the application was run. SaveObjectProperties will do that for me. First, I create a new DataTable, named "PrintObject", in a DataSet. Next, I loop to add twenty-two columns to the DataTable. They are simply named "Col0" to "Col21". There names do not really matter as you will see in the reload method. Next, I loop thru the the ListView, creating an object for each row of the ListView and then calling AddRowToTable to add each object to the DataTable. Finally, I call the WriteXML method of the DataSet object. It does the creation of the XML automatically.

Public Sub SaveObjectProperties()
Dim ds As New DataSet
Dim oCG As New CGrid
Dim i As Integer

Try
' create a datatable in a dataset. the dataset will
' automatically create the xml
Dim dt As DataTable = ds.Tables.Add("PrintObject")

For i = 0 To MelistviewObjects.Columns.Count - 1
dt.Columns.Add("Col" & i.ToString, Type.GetType("System.String"))
Next

For i = 0 To MelistviewObjects.Items.Count - 1
With Me.listviewObjects.Items(i)
Dim o() As Object = {.SubItems(0).Text, _
.SubItems(1).Text, _
.SubItems(2).Text, _
.SubItems(3).Text, _
.SubItems(4).Text, _
.SubItems(5).Text, _
.SubItems(6).Text, _
.SubItems(7).Text, _
.SubItems(8).Text, _
.SubItems(9).Text, _
.SubItems(10).Text, _
.SubItems(11).Text, _
.SubItems(12).Text, _
.SubItems(13).Text, _
.SubItems(14).Text, _
.SubItems(15).Text, _
.SubItems(16).Text, _
.SubItems(17).Text, _
.SubItems(18).Text, _
.SubItems(19).Text, _
.SubItems(20).Text, _
.SubItems(21).Text}
AddRowToTable(dt, o)
End With
Next i
ds.WriteXml(Me.textSavePath.Text)
Catch ex As System.Exception
MsgBox(ex.ToString)
End Try
End Sub

This method simply adds an object array to the passed DataTable. Note that we can build a DataTable in memory, that is not linked to a database. That is one of the neat things about ADO.NET.

Public Function AddRowToTable(ByRef dt As DataTable, _
ByVal ParamArray DRows() As Object) As Boolean
Dim i As Short
Try
Dim newRow As DataRow = dt.NewRow
For i = 0 To UBound(DRows)
' add a row to the passed dtList
newRow(i) = DRows(i)
Next
dt.Rows.Add(newRow)
Return True
Catch ex As System.Exception
MsgBox(ex.ToString)
Return False
End Try
End Function

This method reloads the ListView from the previously created XML file. First, I create a new DataSet object and use it to read the XML file. As you can see, ADO.NET and XML work seamlessly. Next, I get a DataTable object set to the "PrintObject" DataTable saved as XML. Finally, I loop through each row and column of the DataTable to fill the ListView. ADO.NET, XML, and VB.NET make formerly complex tasks become a cakewalk!

Public Sub ReloadListviewFromXML()
Dim ds As New DataSet

Try
ds.ReadXml(Me.textOpenPath.Text)
Dim dt As DataTable = ds.Tables("PrintObject")
Dim i As Integer
Dim j As Integer
Me.listviewObjects.Items.Clear()

For i = 0 To dt.Rows.Count - 1
Dim dr As DataRow = dt.Rows(i)
With Me.listviewObjects
.Items.Add(dr(0))
For j = 1 To dt.Columns.Count - 1
.Items(i).SubItems.Add(dr(j))
Next
End With
Next
Catch ex As System.Exception
StructuredErrorHandler(ex)
End Try
End Sub
_________________
sreenath@myanna.inImage


Profile E-mail
Offline

Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 1 post ] 
Bookmark & Share

Who is online

Users browsing this forum: No registered users and 0 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB Group.

phpBB SEO