You are designing the data access layer (DAL) for an application that uses Microsoft SQL Server 2008, Microsoft ADO.NET, and Microsoft Visual Studio 2010. Conflicts are occurring in the SQL Server database due to concurrent updates. You need to design a database locking strategy that meets the following requirements:
* Resolves concurrent update conflicts without loss of data
* Ensures that data conflicts can be resolved by users
* Locks only the data necessary for updates
What should you do?
A.
Use optimistic locking. Terminate the update when a DBConcurrencyException occurs.
B.
Use pessimistic locking. Terminate the update when a DBConcurrencyException occurs.
C.
Use pessimistic locking. Retry the failing update operation in the DBConcurrencyException exception handler until it succeeds.
D.
Use optimistic locking. In the DBConcurrencyException exception handler, display the data of both original and updated records to the user. Allow the user to resolve the conflicts.