O'Reilly logo

ADO.NET Cookbook by Bill Hamilton

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

7.2. Binding Complex Data to Web Forms Controls

Problem

You want to bind multiple columns in multiple records to an ASP.NET control.

Solution

Set the control’s advanced properties (see Table 7-1) before calling DataBind( ).

The Web Forms page sample code defines the ListBox that is populated with data by the code-behind page logic. The code for the Web Forms page is shown in Example 7-3.

Example 7-3. File: ADOCookbookCS0702.aspx

<asp:ListBox id="categoriesListBox" style="Z-INDEX: 102; LEFT: 88px;
    POSITION: absolute; TOP: 64px" runat="server" Width="184px"
    Height="216px">
</asp:ListBox>

The code-behind contains one event handler:

Page.Load

Fills a DataTable with the CategoryID and CategoryName from the Categories table in the Northwind sample database. The ListBox server control is bound to the DataTable.

The C# code for the code-behind is shown in Example 7-4.

Example 7-4. File: ADOCookbookCS0702.aspx.cs

// Namespaces, variables, and constants using System; using System.Configuration; using System.Data; using System.Data.SqlClient; // . . . private void Page_Load(object sender, System.EventArgs e) { // Create a DataAdapter and use it to retrieve ID and Name // for all categories. String sqlText = "SELECT CategoryID, CategoryName FROM Categories " + "ORDER BY CategoryName"; SqlDataAdapter da = new SqlDataAdapter(sqlText, ConfigurationSettings.AppSettings["DataConnectString"]); DataTable table = new DataTable("Categories"); da.Fill(table); // Bind the table to the list box control. categoriesListBox.DataSource ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required