This chapter presents coding techniques for typical tasks you might perform with ADO.NET. It starts by drilling down on OleDbConnection objects. In particular, the chapter contrasts connection strings in Access databases with those in SQL Server. Then, we discuss OleDbCommand objects for dynamic data access. In addition, you learn how to wrap data manipulation queries in transactions. The chapter closes with an in-depth look at performing data manipulation with data adapters and datasets. You see how to set up a data adapter for filling a dataset and handling inserts , deletes, and updates. The chapter also contrasts code-based datasets with graphically generated ones. The final sample illustrates how to handle concurrency conflicts that can occur when two datasets make conflicting changes to an Access database.