Just about any application you can think of will need to store data. Database integration is important to many of these applications, and Web services and server applications are no exception to the rule. Fortunately, the .NET Framework and Visual Basic .NET offer a rich and productive set of tools for working with data stored in databases.
The Web services and server components exam presumes that you already have a working knowledge of ADO.NET. (If you need a refresher course, refer to Appendix A for the basics of ADO.NET.) The core object of ADO.NET is the DataSet, which provides a complete in-memory relational database. A DataSet can contain multiple tables with keys and relationships, mimicking the structure of a relational database while abstracting away the implementation differences between various databases. You can use a DataSet to hold data from Microsoft Jet, Microsoft SQL Server, Oracle, or many other databases without needing to change any of your code.
In this chapter, you'll learn how to work with DataSet schemas. A DataSet schema is an XML representation of the metadata that defines the structure of a DataSet. Visual Studio .NET includes tools that let you work with this metadata directly, defining and altering the structure of DataSet objects.
When you've created a DataSet schema, you can use that schema to instantiate a strongly typed DataSet. A strongly typed DataSet behaves like any other DataSet, but you can use an early-bound syntax to manipulate its contents. This makes it easier to write code, and makes the code less prone to errors.
After showing you how to work with DataSet schemas and strongly typed DataSets, I'll review the basics of the Structured Query Language (SQL) and show you how you can use SQL statements and stored procedures to interact with a Microsoft SQL Server database from within your .NET applications.