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
|