4.1. Understanding ODP.NET Data Types4.2. Creating a Sample Table4.3. Retrieving Multiple Rows of Data4.4. Retrieving a Single Value4.5. Handling NULL Values in ODP.NET4.6. Retrieving Data into a Dataset4.7. Using Parameterized Queries4.8. Updating Data4.8.1. Executing a Single INSERT, UPDATE, or DELETE Statement4.8.2. Committing Dataset Changes to the Database4.8.3. Generating Command Objects4.9. Handling Master-Detail Relationships4.9.1. Creating a Second Table4.9.2. Retrieving from Multiple Tables4.9.3. Binding a .NET Form to Your Dataset4.9.4. Committing Changes to Multiple Tables4.9.5. Defining Table Relationships and Constraints in a DataSet4.10. Manipulating LOBs and BFILEs4.10.1. Uploading BLOB Data4.10.2. Retrieving BLOB Data4.10.3. Inserting CLOB/NCLOB Data4.10.4. Retrieving CLOB/NCLOB Data4.10.5. Creating BFILE Directory Mappings4.10.6. Inserting BFILE Data4.10.7. Retrieving BFILE Data4.11. Manipulating RAW Data Types4.12. Creating Automatically Incrementing Columns4.13. Executing DDL from ODP.NET4.14. Discovering Schema in ODP.NET4.15. Handling ODP.NET Exceptions4.16. Summary