Creating a Sample Page


ASP.NET Developer's JumpStart
By Paul D. Sheriff, Ken Getz
Table of Contents
Chapter 11.  Data Binding on Web Forms

The simplest way to get started with data binding is to display the contents of a single table in a DataGrid control. As you'll see, this requires very little effort on your part, at least, if your only goal is to simply display the data.

(Adding, editing, and deleting data require a bit more effort, and these topics are covered in Chapter 17, "Editing Data Using the DataGrid Control.")

To get started, in this section you'll walk through building the sample page shown in Figure 11.1.

Figure 11.1. You'll build this page in the first part of this chapter.


The example involves these basic steps (all described in detail in the following sections):

  • Building a Web Form.

  • Creating and configuring the DataSet to which you wish to bind a control on the form.

  • Adding a DataGrid control to the page.

  • Binding the DataGrid control to the data source.

Before digging into the details of setting up the bound DataGrid control, you'll need to add a new page to your project. Follow these steps to add the new page:

  1. Select Project, Add Web Form from the menu bar.

  2. Set the name of this form to Products.aspx.

  3. Click Open to add this new Web Form to your project.

Creating and Configuring a DataSet

Once you've created the Products page, you're ready to create and configure the DataSet you'll use on this page. In this example, you'll retrieve data from the Products table that's part of SQL Server's Northwind sample database. Because a DataSet is an in-memory cache consisting of tables, relations, and constraints, it acts as an "in-memory" database, and you'll bind controls on your page to DataSet objects. You need to start by filling a DataSet using a DataAdapter object.


Although we had a choice, when designing the examples in this chapter (and throughout the book) of using either the System.Data.OleDb or System.Data.SqlClient namespaces, we opted for the OleDb namespace because of its flexibility. That is, had we chosen the SqlClient namespace, and then you decided to modify the examples to work with a DB2 database back end, you would have to modify every object in every example. Using the OleDb namespace, all you need to do is modify the connection information and field names. It was a difficult choice, and if you're only working with SQL Server 7.0 or higher, it's not the correct one for you. For this book, however, this choice provides for simpler modifications. Note that we'll often refer to namespace-specific objects (such as the OleDbDataAdapter object) using namespace-agnostic names, such as DataAdapter. There isn't a DataAdapter object out there, but referring to it generically sure beats saying OleDbDataAdapter or SqlDataAdapter each time! If you have time, it would be a worthwhile exercise to try repeating the page created in this chapter using the SqlClient namespace. The issues aren't very different, and you should be able to take the same steps using the different namespace.

Using the Data Adapter Configuration Wizard

The first step in retrieving data is to create a Connection object that contains information on the location and type of your data source. Although you can write code to handle this task, for the purposes of this chapter, you'll use the user-interface tools provided by Visual Studio .NET to create the necessary connection. To do that, you'll use the OleDbDataAdapter component on the Data tab of the Toolbox. Once you've placed this component on your page, Visual Studio .NET walks you through the steps of supplying connection information and building a SELECT command to retrieve the data you need. Once you've built the DataAdapter, you'll still need to write a tiny bit of code to fill a DataSet and bind a grid to the DataSet.


You could write code that solves all the tasks in this chapter. To keep things simple, however, in this first exploration of ADO.NET, we've elected to use the tools provided by Visual Studio .NET. That way, you don't need to write much code. Later chapters work through the details of creating Connection objects, DataAdapter objects, and so on, all using Visual Basic .NET code.

Follow these steps to set up the OleDbDataAdapter object on your new page:

  1. Make sure the Toolbox window is visible (select View, Toolbox, if it's not).

  2. Select the Data tab on the Toolbox window.

  3. Click and drag the OleDbDataAdapter component onto your page. This starts the Data Adapter Configuration Wizard.

  4. The first page of the wizard, shown in Figure 11.2, gives you basic information. Select Next to move on.

    Figure 11.2. The first page of the Data Adapter Configuration Wizard gives you basic information about what's going to happen.


  5. On the Choose Your Data Connection page, shown in Figure 11.3, you have the option to use an existing connection or to create a new one. Because you're unlikely to have an existing connection at this point, select New Connection to create a new one. (Even if you have existing connections, follow along with creating a new one, for now.)

    Figure 11.3. Choose your data connection.


  6. Clicking New Connection brings up the Data Link Properties dialog box. (This should be a familiar sight to anyone who has used ADO and OLE DB in the past.) Assuming that you can use the Northwind SQL Server sample database on your local computer, log in as "sa" with no password (not a good idea, in general) and fill in the dialog box as shown in Figure 11.4. Click OK when you're done to dismiss the dialog box; then click Next to move to the next page.

    Figure 11.4. Supply data link properties.



    If you can't connect to the Northwind SQL Server sample database, you may need to talk with a network administrator, who can supply information about how to connect to the sample database.

  7. The Choose a Query Type page, shown in Figure 11.5, allows you to designate the type of query you want to use when the DataAdapter fills a DataSet. Select Use SQL Statements (in order to have the wizard create local SQL statements, as opposed to using existing or new stored procedures) and click Next.

    Figure 11.5. Designate the type of query the wizard should use.


  8. On the Generate the SQL Statements page, you must either enter a SQL statement manually or click Query Builder to use a visual tool to create the query. In this simple example, it's easy enough to simply type in the required SQL. Enter the following text into the text box, so that the page looks like Figure 11.6:

    Figure 11.6. Enter a SQL expression to be used by the DataAdapter.


     SELECT CategoryID, SupplierID, ProductID, ProductName, UnitPrice, UnitsInStock FROM Products 
  9. Click Next to proceed to the final page. Then click Finish to complete the process. Notice that OleDbConnection and OleDbDataAdapter objects named OleDbConnection1 and OleDbDataAdapter1 appear in the tray area of the form.

  10. Select OleDbConnection1 and, in the Properties window, set the Name property to cnNorthwind.

  11. Select OleDbDataAdapter1 and, in the Properties window, set the Name property to daProducts.

At this point, the cnNorthwind object contains information about how to access the selected database. The daProducts object contains a query defining the tables and columns in the database that you want to access. You'll use both those objects in order to retrieve the data you need.


If you'd rather use the slightly more efficient SqlClient namespace objects, you can follow the same steps listed here, using the SqlConnection and SqlDataAdapter objects. The steps are identical, although you may need to modify the code later on in order to complete the chapter.

Retrieving Data

You can't bind controls to a DataAdapter object because a DataAdapter object doesn't contain any data you need a DataSet to bind data to controls. At this point, you have two choices: You can have Visual Studio .NET generate a typed DataSet for you, or you can write code to create a standard DataSet yourself. For the purposes of this chapter, it doesn't matter which technique you choose the code you have to write is similar in either case. If you're going to interact programmatically with the DataSet or want the extra functionality provided by the typed DataSet, you might go that route. If you simply want to get the DataGrid filled with data, you might want to create the DataSet yourself. In this section, we'll use a typed DataSet. When it comes time to bind a DropDownList control, you'll write all the code yourself that is, bind to data without using the design-time components provided by Visual Studio .NET.

Using a Typed DataSet

In order to generate the typed DataSet, follow these steps:

  1. Select Data, Generate DataSet to display the Generate DataSet dialog box.

  2. Select the New radio button. Next to the New radio button, enter dsProducts as the name for your DataSet, as shown in Figure 11.7.

    Figure 11.7. The Generate DataSet dialog box allows you to specify the name for the DataSet you're generating.


  3. Click OK to dismiss the dialog box and generate the DataSet schema definition and class files.

  4. After this step completes, you will see a new component, DsProducts1, in the tray area for the page. This new component represents the schema definition file, dsProducts.xsd, that Visual Studio .NET added to your project. This file contains the complete definition for the table and columns of the SQL statement you entered earlier, described as an XML Schema Definition (or XSD) file. Visual Studio .NET also provides a code-behind file for this schema. You won't see the code-behind file unless you select Project, Show All Files.

  5. Once you've shown all files, you can expand the dsProducts.xsd node to see the dsProducts.vb file, as shown in Figure 11.8. The dsProducts.vb file contains a class that "wraps up" the behavior of the DataSet, providing an object that inherits from the standard DataSet class, adding properties that map to the columns from the underlying table and methods that allow you to work with the data.

    Figure 11.8. An XML Schema Definition (XSD) file has a class module that contains the code that loads the DataSet into memory.



You won't use any of the features of the typed DataSet in this chapter, although it's nice to know how easy it is to create the class, should you ever need the functionality.


    ASP. NET Developer's JumpStart
    ASP.NET Developers JumpStart
    ISBN: 0672323575
    EAN: 2147483647
    Year: 2002
    Pages: 234 © 2008-2017.
    If you may any questions please contact us: