Galileo Computing < openbook >
Galileo Computing - Programming the Net
Galileo Computing - Programming the Net


Einstieg in ASP.NET von Matthias Lohrer
Einstieg in ASP.NET
gp Kapitel 12 ASP.NET und Datenbanken
  gp 12.1 Auf Datenbanken zugreifen – ein Crashkurs
    gp 12.1.1 Eine Tabelle im Browser anzeigen
    gp 12.1.2 Über den Browser einen Datensatz hinzufügen
  gp 12.2 Wie ADO.NET funktioniert – ein Überblick
  gp 12.3 Die Verbindung zur Datenbank herstellen
    gp 12.3.1 OleDbConnection
    gp 12.3.2 SqlConnection
  gp 12.4 Daten lesen mit SqlCommand und OleDbCommand
    gp 12.4.1 ExecuteReader
    gp 12.4.2 ExecuteNonQuery und die Parameters-Collection
    gp 12.4.3 ExecuteScalar
  gp 12.5 SqlDataReader und OleDbDataReader
    gp 12.5.1 Ein Reader-Objekt an ein Steuerelement binden
    gp 12.5.2 Ein Reader-Objekt an ein Listensteuerelement binden
    gp 12.5.3 Ein Reader-Objekt zeilenweise auswerten
  gp 12.6 Die DataSet-Klasse
    gp 12.6.1 Das Zusammenspiel von Command, Adapter und DataSet
    gp 12.6.2 Mehrere Tabellen in ein DataSet-Objekt einlesen
    gp 12.6.3 Auf einzelne Zeilen, Spalten und Tabellen eines DataSet-Objekts gezielt zugreifen
    gp 12.6.4 Relationen zwischen Tabellen festlegen
  gp 12.7 DataViews verwenden
    gp 12.7.1 Tabellen sortieren
    gp 12.7.2 Tabellen nach Inhalten filtern
    gp 12.7.3 Nach dem Zeilenstatus filtern
    gp 12.7.4 In Tabellen suchen
  gp 12.8 Mit ASP.NET Daten bearbeiten
  gp 12.9 Daten bearbeiten mit dem Command-Objekt
  gp 12.10 In-Place-Editing mit dem DataGrid-Steuerelement
    gp 12.10.1 Die EditItemIndex-Eigenschaft
    gp 12.10.2 Das asp:DataGrid-Tag anpassen
    gp 12.10.3 OnEditCommand: Daten bearbeiten
    gp 12.10.4 OnCancelCommand: Die Bearbeitung abbrechen
    gp 12.10.5 OnUpdateCommand: Die Änderungen sichern
    gp 12.10.6 Das Repeater-Steuerelement verwenden
    gp 12.10.7 Die Ereignisse des Repeater-Steuerelements auswerten
  gp 12.11 Das DataList-Steuerelement
    gp 12.11.1 In-Place-Editing mit dem DataList-Steuerelement


Galileo Computing

12.9 Daten bearbeiten mit dem Command-Objekt  toptop

Sie möchten die Tabelle Versandfirmen anzeigen und dem Anwender die Möglichkeit bieten, die Inhalte der Tabelle zu bearbeiten. Der Browser zeigt zunächst die komplette Tabelle an. Darunter gibt es drei Eingabefelder für die drei Spalten der Tabelle. Der Anwender selektiert eine Zeile, indem er die Firmen-Nr. eingibt. In den beiden anderen Feldern kann er den Firmennamen und die Telefonnummer aktualisieren. Die Benutzerschnittstelle für dieses Beispiel ist bewusst einfach gehalten, weil zunächst nur das Prinzip der Datenaktualisierung demonstriert werden soll.

In der Ereignisprozedur Page_Load ermitteln Sie, ob ein Postback vorliegt. In diesem Fall setzen Sie aus den Eingabedaten den benötigten SQL-Befehl zusammen und führen ihn aus. Im Anschluss zeigen Sie die Tabelle an. db_16.aspx enthält den kompletten Code für die aspx-Seite. Abbildung 12.17 zeigt die Darstellung im Browser, nachdem ein Datensatz aktualisiert wurde.

<!-- db_16.aspx --> 
<%@ Page Language="VB" Debug="True" Strict="True" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<script runat="server">
Sub Page_Load (ByVal Sender As Object, _
               ByVal E As EventArgs)
   ' Verbindungszeichenfolge zusammensetzen
   Dim connStr As String 
   connStr = "Provider=Microsoft.Jet.OLEDB.4.0;"
   connStr += _
  "Data Source=E:\ASPdotNETBuch\Listings\Nordwind.mdb;"

   ' Verbindung zur Datenbank herstellen
   Dim conn As New OleDbConnection(connStr)
   conn.Open()
   
   ' Bei einem Postback die Tabelle aktualisieren
   If IsPostBack() Then
      Dim sqlUpdate As String
      sqlUpdate = "UPDATE Versandfirmen SET Telefon='"
      sqlUpdate += txtTelefon.value 
      sqlUpdate += "', Firma ='"
      sqlUpdate += txtFirma.value
      sqlUpdate += "' WHERE [Firmen-Nr] = "
      sqlUpdate += txtID.value
      Dim cmdUpdate As OleDbCommand 
      cmdUpdate = New OleDbCommand (sqlUpdate, conn)
      Dim erg As Integer
      erg = cmdUpdate.ExecuteNonQuery()
      ausgabe.innerHTML = "Ausgeführter SQL-Befehl:"
      ausgabe.innerHTML += "<br>" & sqlUpdate
   End If

   ' Die Tabelle Versandfirmen anzeigen
   Dim sql As String
   sql = "SELECT * FROM Versandfirmen"
   Dim cmd As New OleDbCommand(sql, conn)
   Dim myAdapter As New OleDbDataAdapter()
   myAdapter.SelectCommand = cmd
   Dim myDS As New DataSet()
   myAdapter.Fill (myDS)
   myGrid.DataSource = myDS   
   DataBind()
   
   conn.Close()
               
End Sub
</script>
<html><head><title>Daten bearbeiten</title></head>
<body>
<h3>Daten bearbeiten</h3>
<asp:DataGrid id="myGrid" runat="server" />
<form runat="server">
Firmen-Nr<br>
<input type="text" id="txtID" runat="server"><br>
Firma<br>
<input type="text" id="txtFirma" runat="server"><br>
Telefon<br>
<input type="text" id="txtTelefon" runat="server"><br>
<br>
<input type="submit" runat="server" 
       value="Änderungen übernehmen" ><br>
<p runat="server" id="ausgabe" />
</form></body></html>

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 12.17 Mit der ExecuteNonQuery-Methode des OleDbCommand-Objekts können Sie die Datenbank aktualisieren.

Der komfortverwöhnte Anwender von heute erwartet jedoch die Möglichkeit zum In-Place-Editing. Das Webserversteuerelement DataGrid ermöglicht eine entsprechende Gestaltung.

  

Einstieg in VB.NET

VB.NET

Einstieg in C#

Visual C#

VB.NET und Datenbanken

Einstieg in XML




Copyright © Galileo Press GmbH 2003
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press GmbH, Gartenstraße 24, 53229 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de