Skip to Content
ADO.NET 3.5 Cookbook, 2nd Edition
book

ADO.NET 3.5 Cookbook, 2nd Edition

by Bill Hamilton
March 2008
Intermediate to advanced
982 pages
22h 43m
English
O'Reilly Media, Inc.
Content preview from ADO.NET 3.5 Cookbook, 2nd Edition

4.7. Accessing Deleted Rows in a DataTable

Problem

When you delete rows from a DataSet they are really marked for deletion until changes are committed by calling AcceptChanges() either directly or indirectly. You want to access the rows that you have deleted from a DataTable.

Solution

Use one of the four techniques demonstrated in this solution.

The solution fills a DataSet with the TOP 3 records from the Person.Contact table in the AdventureWorks database. The second row is deleted. The deleted row is accessed and written to the console using the following techniques:

  • Iterating over the records in the DataTable, identifying the deleted rows as having their RowState property being set to DataRowState.Deleted, and accessing the original values for the deleted row using the field accessor of the DataRow that takes a second argument and specifying it as DataRowVersion.Original.

  • Creating a DataView of only deleted records in the table using an overload of the DataView constructor with the row state argument set to DataViewRowState.Deleted.

  • Creating a DataView based on the table and filtering only deleted records by setting the RowStateFilter property of the DataView to DataViewRowState.Deleted.

  • Using the Select() method with the row state set to DataViewRowState.Deleted to get a DataRow array of deleted records from the DataTable and accessing the values for the deleted rows through their original values by specifying a row state of DataRowVersion.Original in the DataRow field accessor.

The ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

ADO.NET Cookbook

ADO.NET Cookbook

Bill Hamilton
C# 5.0 Unleashed

C# 5.0 Unleashed

Bart De Smet

Publisher Resources

ISBN: 9780596101404Errata Page