C# Corner
Tech
News
Videos
Forums
Jobs
Books
Events
More
Interviews
Live
Learn
Training
Career
Members
Blogs
Challenges
Certification
Contribute
Article
Blog
Video
Ebook
Interview Question
Collapse
Feed
Dashboard
Wallet
Learn
Achievements
Network
Refer
Rewards
SharpGPT
Premium
Contribute
Article
Blog
Video
Ebook
Interview Question
Register
Login
Working with XmlDataDocument Events in ADO.NET
WhatsApp
Mahesh Chand
4y
11.6k
0
1
100
Article
This article has been excerpted from the book "A Programmer's Guide to ADO.NET in C#".
The XmlDataDocument events are useful when your application needs to notify you when changes are being made to an XmlDataDocument object. XmlDocument defines XmlDataDocument events (see Table 9-6).
Table 9-6. XmlDataDocument Events
EVENT
DESCRIPTION
NodeChanged
Occurs when the value of a node has been changed
NodeChanging
Occurs when the value of a node is changing
NodeInserted
Occurs when a node inserted into another node
NodeInserting
Occurs when a node inserting to another node
NodeRemove
Occurs when a node has been removed
NodeRemoving
Occurs when a node is being removed
The XmlNodeChangedEventHandler method handles the events listed in Table 9-6. The XmlNodeChangedEventHandler is as follows:
public
delegate
void
XmlNodeChangedEventHandler(
object
sender, XmlNodeChangedEventArgs e);
Where sender is the source of the event and e is an XmlNodeChangedEventArgs that contains the event data. XmlNodeChangedEventArgs defines properties (see Table 9-7).
Table 9-7. The XmlNodeChangedEventArgs properties
PROPERTY
DESCRIPTION
Action
Returns a value indicating the type of node changed event
NewParent
Returns a value of parent node after the operation is finished
Node
Returns the node that is being added, removed, or changed
OldParent
Returns the value of the parent node before the operation started
Listing 9-11. Handles XmlDataDocument events. The XmlDocumentBtn_Click method creates event handlers for the NodeChanged, NodeInserted, and NodeRemoved events. The MyNodeChangedEvent, MyNodeInsertEvent, and MyNodeRemoved event handlers execute when these events fire. I used LoadXml to load an XML fragment and then used the ReplaceChild and RemoveChild methods to replace and remove document nodes.
Listing 9-11. The XmlDataDocument event handling sample
private
void
XmlDocumentBtn_Click(
object
sender, System.EventArgs e) {
XmlDocument xmlDoc =
new
XmlDocument();
xmlDoc.LoadXml(
"<Record> Some Value </Record>"
);
// Create the event handlers.
xmlDoc.NodeChanged +=
new
XmlNodeChangedEventHandler(
this
.MyNodeChangedEvent);
xmlDoc.NodeInserted +=
new
XmlNodeChangedEventHandler(
this
.MyNodeInsertedEvent);
xmlDoc.NodeRemoved +=
new
XmlNodeChangedEventHandler(
this
.MyNodeRemovedEvent);
XmlElement root = xmlDoc.DocumentElement;
string
str = root.ToString();
XmlDocumentFragment xmlDocFragment =
xmlDoc.CreateDocumentFragment();
xmlDocFragment.InnerXml =
"<Fragment><SomeDate>Fragment Data</SomeDate></Fragment>"
;
// Replace Node
XmlElement rootNode = xmlDoc.DocumentElement;
rootNode.ReplaceChild(xmlDocFragment, rootNode.LastChild);
//Remove Node
XmlNode node = xmlDoc.LastChild;
xmlDoc.RemoveChild(node);
}
Listing 9-12. Shows the NodeChangedEvent handler. The Node property of XmlNodeChangedEventArgs returns XmlNode. Using the Node property you can get more information about a node such as its parent node, value, name, namespace, and so on.
Listing 9-12. The NodeChanged event handler
public
void
MyNodeChangedEvent(
object
src,
XmlNodeChangedEventArgs args) {
MessageBox.Show(
"Node Changed Event Fired for node "
+ args.Node.Name);
if
(args.Node.Value !=
null
) {
MessageBox.Show(args.Node.Value);
}
}
Similar to listing 9-12, Listing 9-13 and 9-14 show event handlers for the NodeInserted and NodeRemoved events.
Listing 9-13. The NodeInserted event handler
public
void
MyNodeInsertedEvent(
object
src,
XmlNodeChangedEventArgs args) {
MessageBox.Show(
"Node Inserted event fired for node "
+ args.Node.Name);
if
(args.Node.Value !=
null
) {
MessageBox.Show(args.Node.Value);
}
}
Listing 9-14.The NodeRemoved event handler
public
void
MyNodeRemovedEvent(
object
src,
XmlNodeChangedEventArgs args) {
MessageBox.Show(
"Node Removed event fired for node "
+ args.Node.Name);
if
(args.Node.Value !=
null
) {
MessageBox.Show(args.Node.Value);
}
}
Conclusion
Hope this article would have helped you in understanding working with XmlDataDocument Events in ADO.NET. See other articles on the website also for further reference.
This essential guide to Microsoft's ADO.NET overviews C#, then leads you toward deeper understanding of ADO.NET.
ADO.NET
XmlDataDocument Events
XmlNodeChangedEventArgs properties
Up Next
Ebook Download
View all
Printing in C# Made Easy
Read by 22.5k people
Download Now!
Learn
View all
Mindcracker
Founded in 2003, Mindcracker is the authority in custom software development and innovation. We put best practices into action. We deliver solutions based on consumer and industry analysis.
Membership not found