Introduction
Recipe 6.1. Creating a Class That Participates in an Automatic Transaction
Recipe 6.2. Using Manual Transactions
Recipe 6.3. Nesting Manual Transactions with the SQL Server .NET Data Provider
Recipe 6.4. Using ADO.NET and SQL Server DBMS Transactions Together
Recipe 6.5. Using a Transaction with a DataAdapter
Recipe 6.6. Avoiding Referential Integrity Problems When Updating the Data Source
Recipe 6.7. Enforcing Business Rules with Column Expressions
Recipe 6.8. Creating Constraints, PrimaryKeys, Relationships Based on Multiple Columns
Recipe 6.9. Retrieving Constraints from a SQL Server Database
Recipe 6.10. Checking for Concurrency Violations
Recipe 6.11. Resolving Data Conflicts
Recipe 6.12. Using Transaction Isolation Levels to Protect Data
Recipe 6.13. Implementing Pessimistic Concurrency Without Using Database Locks
Recipe 6.14. Specifying Locking Hints in a SQL Server Database