VB .Net Tutorial - 7
VB .Net Tutorial - 7
Objectives
In this lesson, you will learn to:
☛Perform cached data updates
☛Perform direct data updates
☛Identify the need for concurrency management
☛Identify the methods of maintaining concurrency in datasets
Task List
☛Identify the data that needs to be maintained.
☛Identify the mechanism to maintain data.
☛Design a Windows Form to maintain the data.
☛Connect to the database.
☛Bind the data to the Windows Form controls.
☛Write the code to maintain the data.
☛Perform data maintenance.
Result:
☛As per the given problem statement, the data to be
maintained is as follows:
✓ CustID
✓ FName
✓ LName
✓ Address
✓ Phone
✓ email
➤ RowChanging
➤ ColumnChanged
➤ RowChanged
➤ RowDeleting
➤ RowDeleted
©NIIT Performing Data Updates/Lesson 7/Slide 5 of 25
Performing Data Updates
Just a Minute…
2. When does the RowState property have the value
Detached?
3. What is the relationship between the RowState property
and the DataRowVersion enumeration?
Just a Minute…
1. In which cases, direct data update is preferred to updates
through datasets?
2. Write a code to connect to a database through data
commands.
Method Description
Method Description
Optimistic concurrency control In this type of concurrency control, the lock is not
applied when the users read the data. When the
user performs a data update, the system checks to
see if the data has been changed by another user
after the data was read. If the data has been
changed, an error is raised. Optimistic concurrency
is used in environments where the data contention
is low and protecting data with locks is more costly
than rolling back transaction in case of concurrency
conflicts.
‘Last in Wins’ concurrency control This type of concurrency control works in a similar
way as the optimistic concurrency control, with the
difference that the record is updated regardless of
whether the record has been changed or not.
Just a Minute…
What is the difference between the concurrency control
through the Saving All method and the Version Number
method?
Summary
In this lesson, you learned that:
☛Data can be retrieved from a database directly through data
commands or can be cached in datasets.
☛When a dataset is used to access data, updating the
database consists of two steps, updating the dataset and
updating the database.
☛When you make changes to a record in the table, the
following events are raised by the DataTable object:
✓ ColumnChanging
✓ RowChanging
✓ ColumnChanged
©NIIT Performing Data Updates/Lesson 7/Slide 19 of 25
Performing Data Updates
Summary (Contd.)
✓ RowChanged
✓ RowDeleting
✓ RowDeleted
☛The ColumnChanging and RowChanging events raised by
the DataTable object are used to validate the dataset
while updating it.
☛When changes are made in a dataset, that is, a row is
added, deleted, or modified, some information about each
update has to be maintained.
Summary (Contd.)
☛ The data adapter uses the following information while
updating the data source:
✓ The RowState property — The RowState property of the
DataRow object indicates the current state of the
record.
✓ The DataRowVersion enumeration — A dataset can
maintain four versions of a DataRow object: Current,
Original, Proposed, and Default.
☛ After the changes have been made, they are committed to
the dataset by calling the AcceptChanges() method of the
dataset to accept the changes made to the dataset.
Summary (Contd.)
☛The data source is updated with the changed dataset by
calling the Update() method of the OleDbDataAdapter class.
☛Data commands are generally used in the following cases:
✓ To work with stored procedures that return a result set,
which can be manipulated
✓ To access data that is not appropriate for storing in a
dataset, such as data with a short life cycle
✓ To access read-only data, that is, data that will not be
updated
☛ A data command object can be derived from the
OleDbCommand class or the SqlCommand class.
Summary (Contd.)
☛A data command object can be derived from the
OleDbCommand class or the SqlCommand class.
☛For executing a data command, the Connection and
the CommandText properties for the command
have to be set for specifying the connection and the
SQL query to be executed to retrieve the data,
respectively.
☛‘Concurrency’ means ‘at the same time’; thus,
concurrency management means to decide the action
that will take place when multiple users try to
update the same record.
Summary (Contd.)
☛ There are three concurrency management methods
available:
✓ Pessimistic concurrency control — In this type of
concurrency control, a record is not available to other
users from the time that a user begins to edit the record
till the time that the record is updated in the database.
✓ Optimistic concurrency control — In this type of
concurrency control, the record is not available to other
users only when the record is being updated in the
database. When a user tries to update a record that has
been changed, an error occurs.
Summary (Contd.)
✓ Last in Wins concurrency control — This type of
concurrency control works similar to the optimistic
concurrency control, the only difference being that the
record is updated without checking whether the record
has been changed or not.
☛ When the row is changed and there is an attempt to
update the database, ADO.NET uses two methods to
determine if any changes have occurred:
✓ The Version number method
✓ The saving all values method
☛ By default, the data adapters that are created in an
application implement optimistic concurrency.
©NIIT Performing Data Updates/Lesson 7/Slide 25 of 25