LINQ to XML Programming Using Visual Basic.NET 2008 - Developing a complete form to work with LINQ to XML using Visual Basic 2008
(Page 4 of 6 )
To demonstrate all of the previous concepts, I designed a Windows form for CRUD operations as shown in Fig 1. The following is the code developed for the form:
Imports System.Linq
Public Class Form1
Const XMLDOCFILEPATH As String = "....MyData.xml"
Dim doc As XDocument
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
RefreshXDoc()
End Sub
Private Sub btnRefresh_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRefresh.Click
Dim qList = From xe In doc.Descendants.Elements("Employee") _
Select New With { _
.ID = xe.Attribute("ID").Value, _
.Empno = xe.Element("Empno").Value, _
.Ename = xe.Element("Ename").Value, _
.Sal = xe.Element("Sal").Value, _
.Deptno = xe.Element("Deptno").Value _
}
Me.DataGridView1.DataSource = qList.ToList
End Sub
Private Sub btnSearch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSearch.Click
Dim qEmp = (From xe In doc.Descendants.Elements("Employee") _
Where xe.<Empno>.Value = Me.txtEmpno.Text _
Select New With { _
.ID = xe.@ID, _
.Empno = xe.<Empno>.Value, _
.Ename = xe.<Ename>.Value, _
.Sal = xe.<Sal>.Value, _
.Deptno = xe.<Deptno>.Value _
}).FirstOrDefault
If qEmp Is Nothing Then
MessageBox.Show("Not found")
Exit Sub
End If
Me.txtEname.Text = qEmp.Ename
Me.txtSal.Text = qEmp.Sal
Me.txtDeptno.Text = qEmp.Deptno
Me.txtID.Text = qEmp.ID
End Sub
Private Sub btnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClear.Click
For Each c As Control In Me.Controls
If TypeOf c Is TextBox Then
CType(c, TextBox).Text = ""
End If
Next
End Sub
Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
Dim qTargetDept As XElement = doc.Descendants.Elements("Department") _
.Where(Function(xe) xe.<Deptno>.Value = Me.txtDeptno.Text) _
.FirstOrDefault
If qTargetDept Is Nothing Then
MessageBox.Show("Department/EmployeeInfo not found")
Exit Sub
End If
Dim oEmp As New XElement("Employee")
oEmp.Add(New XAttribute("ID", Me.txtID.Text))
oEmp.Add(New XElement("Empno", Me.txtEmpno.Text))
oEmp.Add(New XElement("Ename", Me.txtEname.Text))
oEmp.Add(New XElement("Sal", Me.txtSal.Text))
oEmp.Add(New XElement("Deptno", Me.txtDeptno.Text))
qTargetDept.Element("EmployeeInfo").Add(oEmp)
SaveXMLDoc()
MessageBox.Show("Added Successfully!")
End Sub
Next: Developing a complete form to work with LINQ to XML using Visual Basic 2008: continued >>
More Visual Basic.NET Articles
More By Jagadish Chaterjee