Home   Cover Cover Cover Cover
 

ListBox mit Einträgen aus einer Datenbank


Zu Abschnitt 6.4.9 des Buchs

In diesem Beispiel wird eine ListBox aus Einträgen gefüllt, die aus einer Datenbank stammen. Hier ist zunächst einmal die aspx-Seite, die die ListBox definiert:

../../samples/6/ListBox3.aspx
<%@ Page Language="C#" Inherits="BasePage" Src="ListBox3.aspx.cs" %>
<html>
  <body>
    <form OnInit="PageInit" Runat="server">
      <asp:ListBox ID="list" Runat="server" AutoPostBack="true"
        DataTextField="LastName" DataValueField="EmployeeID"
        OnSelectedIndexChanged="HandleSelect" /><br>
      <asp:Label ID="label" Runat="server" />
    </form>
  </body>
</html>

Die Logik der Seite steckt im Hintergrundcode. Dort wird eine Verbindung zur Northwind-Datenbank geöffnet, die als Beispiel mit dem .NET-Framework mitgeliefert wird. Es werden alle Angestellten aus der Datenbank gelesen und als Einträge in die ListBox eingefüllt. Bei Auswahl eines Listeneintrags, wird die entsprechende Personalnummer des Angestellten angezeigt.

../../samples/6/ListBox3.aspx.cs
using System;
using System.Data;
using System.Data.Common;
using System.Data.SqlClient;
using System.Web.UI;
using System.Web.UI.WebControls;

public class BasePage : Page {
  protected ListBox list;
  protected Label label;
  
  public void PageInit(object sender, EventArgs e) {
    DataSet ds = new DataSet();
    SqlConnection con = new SqlConnection("data source=127.0.0.1\\NETSDK; " +
      "initial catalog=Northwind; user id=sa; password=; Trusted_Connection=true");
    string cmdString = "SELECT * FROM Employees";
    SqlDataAdapter adapter = new SqlDataAdapter(cmdString, con);
    adapter.Fill(ds, "Employees");
    if (ds.HasErrors) ds.RejectChanges(); else ds.AcceptChanges();
    list.DataSource = ds.Tables["Employees"].DefaultView;
    list.DataBind();
  }
  
  public void HandleSelect(object sender, EventArgs e) {
    label.Text = "Personalnummer = ";
    if (list.SelectedItem != null) label.Text += list.SelectedItem.Value;
  }
}

Ausführung

   http://dotnet.jku.at/book/samples/6/ListBox3.aspx

Ergebnis