Imports System.IO
Imports
System.Xml
Public Class xml
#Region "Members"
Private
xmlDataSet As New
DataSet
'Dirección de donde se creará el archivo, en este caso, es donde se ejecuta la aplicación.
Private
xmlFile As String
= Application.StartupPath + "\clientes.xml"
Private
columns() As String ' Nombre de las columnas
#End Region
Public Sub WriteXmlToFile(ByVal lista As DataGridView)
Try
Dim ds As New DataSet
ds = ConvertToTable(lista)
If ds Is Nothing Then
Exit Sub
End If
If File.Exists(xmlFile) = True Then'si existe el archivo
File.Delete(xmlFile) 'Borrar el archivo
End If
' Crear el FileStream para escribir
Dim myFileStream As New System.IO.FileStream(xmlFile, System.IO.FileMode.Create)
' crear un XmlTextWriter con el fileStream.
Dim myXmlWriter As New System.Xml.XmlTextWriter(myFileStream, System.Text.Encoding.Unicode)
' escribir los datos con el método WriteXml
ds.WriteXml(myXmlWriter)'Crear el archivo
Catch ex As Exception
MessageBox.Show(Err.Description)
Finally
myXmlWriter.Close()
End Try
End Sub
Public Sub LoadProcess(ByRef dtv As DataGridView)
If File.Exists(xmlFile) = False Then
Exit Sub
End If
xmlDataSet = ReadXML() 'Se le asigna un dataset
Dim filas As Integer = xmlDataSet.Tables(0).Rows.Count - 1
If filas < 0 Then
Exit Sub
End If
colum()
dtv.Rows.Clear() 'Limpiar las filas del grid
For i As Integer = 0 To filas 'Recorrer filas del dataset
Dim nombre As String = xmlDataSet.Tables(0).Rows(i)(columns(0))
Dim apellido1 As String = xmlDataSet.Tables(0).Rows(i)(columns(1))
Dim apellido2 As String = xmlDataSet.Tables(0).Rows(i)(columns(2))
dtv.Rows.Add(nombre, apellido1, apellido2)
Next
End Sub
'Convertir las filas del datagridview en un dataset
Private Function ConvertToTable(ByVal
dgv As DataGridView)
As DataSet
Dim dt As New DataTable()
ReDim columns(2)
columns(0) = "Nombre"
columns(1) = "Primer apellido"
columns(2) = "Segundo apellido"
'agregar las columnas al datatable
dt.Columns.Add(columns(0))
dt.Columns.Add(columns(1))
dt.Columns.Add(columns(2))
'agregar
las filas del datagridview
For Each row As DataGridViewRow In
dgv.Rows
Dim
rowdt As DataRow
= dt.NewRow()
rowdt(columns(0)) = Convert.ToString(row.Cells(0).Value)
rowdt(columns(1)) = Convert.ToString(row.Cells(1).Value)
rowdt(columns(2)) = Convert.ToString(row.Cells(2).Value)
dt.Rows.Add(rowdt) 'agregar la fila al datatable
Next
Dim ds As New DataSet
ds.Tables.Add(dt) 'asignar el datatable al dataset
Return ds
End Function
' Cargar los datos del archivo XML a un dataset
Private Function ReadXML() As
DataSet
Dim ds As New DataSet
Dim
FileSXML As New
System.IO.FileStream(xmlFile, System.IO.FileMode.Open)
Try
ds.ReadXml(FileSXML)
ReadXML = ds
Return
ds
Catch
ex As Exception
MessageBox.Show(Err.Description)
Finally
FileSXML .Close()
End Try
End Function
End Class
4.