Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.0 (Deutsch) » UltraLite - .NET-Programmierung » Praktische Einführung: Eine UltraLite.NET-Anwendung entwickeln

 

Lektion 4: Daten einfügen, aktualisieren und löschen

In dieser Lektion fügen Sie Ihrer Anwendung Code hinzu, um die Daten in Ihrer Datenbank zu ändern. Im folgenden Verfahren wird Dynamic SQL verwendet. Dasselbe kann mit der Tabellen-API durchgeführt werden.

Weitere Hinweise finden Sie unter Datenzugriff und Datenverarbeitung mit der Tabellen-API.

Mit den folgenden Schritten erstellen Sie eine unterstützende Methode für die Verwaltung des Listenfeldes. Diese Methode ist für die Datenmanipulationsmethoden erforderlich, die in den später beschriebenen Verfahren erstellt werden.

 ♦  So fügen Sie Code zur Verwaltung des Listenfeldes hinzu
  1. Klicken Sie mit der rechten Maustaste auf das Formular und wählen Sie Code anzeigen.

  2. Fügen Sie eine Methode der Form1-Klasse hinzu, mit der das Listenfeld aktualisiert und Daten in das Listenfeld geladen werden. Diese Methode führt die folgenden Aufgaben aus:

    • Sie löscht das Listenfeld.

    • Sie instanziert ein ULCommand-Objekt und weist es einer SELECT-Abfrage zu, die Daten aus der Tabelle "Namen" in der Datenbank ausgibt.

    • Sie führt eine Abfrage aus und gibt eine Ergebnismenge als ULDataReader zurück.

    • Sie instanziert ein Ganzzahl-Array, dessen Länge der Anzahl der Zeilen in der Ergebnismenge entspricht.

    • Sie lädt die in ULDataReader zurückgegebenen Namen in das Listenfeld und die in ULDataReader zurückgegebenen IDs in das Ganzzahl-Array.

    • Sie schließt ULDataReader.

    • Sie gibt eine Fehlermeldung aus, falls ein Fehler auftritt. Bei SQL-Fehlern wird auch der Fehlercode ausgegeben.

      Weitere Hinweise finden Sie unter Fehlermeldungen.

    Bei einem C#-Projekt fügen Sie Ihrer Anwendung den folgenden Code als eine Methode der Form1-Klasse hinzu.



    //Visual C#
    private void RefreshListBox(){
        try{
            long NumRows;
            int I = 0;
            lbNames.Items.Clear();
            using( ULCommand cmd = Conn.CreateCommand() ){
                cmd.CommandText = "SELECT ID, Name FROM Names";
                using( ULDataReader dr = cmd.ExecuteReader()){
                    dr.MoveBeforeFirst();
                    NumRows = dr.RowCount;
                    ids = new int[ NumRows ];
                    while (dr.MoveNext())
                    {
                        lbNames.Items.Add(
                        dr.GetString(1));
                        ids[ I ] = dr.GetInt32(0);
                        I++;
                    }
                }
                txtName.Text = " ";   
            }
        }
        catch( Exception err ){
            MessageBox.Show(
            "Exception in RefreshListBox: " + err.Message );
        }
    }

    Bei einem Visual Basic-Projekt fügen Sie Ihrer Anwendung den folgenden Code als eine Methode der Form1-Klasse hinzu.



    'Visual Basic
    Private Sub RefreshListBox()
        Try
            Dim cmd As ULCommand = Conn.CreateCommand()
            Dim I As Integer = 0
            lbNames.Items.Clear()
            cmd.CommandText = "SELECT ID, Name FROM Names"
            Dim dr As ULDataReader = cmd.ExecuteReader()
            ReDim ids(dr.RowCount)
            While (dr.MoveNext)
                lbNames.Items.Add(dr.GetString(1))
                ids(I) = dr.GetInt32(0)
                I = I + 1
            End While
            dr.Close()
            txtName.Text = " "   
        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try
    End Sub
  3. Erstellen Sie das Projekt.

    Bei der Erstellung des Projekts sollten keine Fehlermeldungen ausgegeben werden.

 ♦  So implementieren Sie INSERT, UPDATE und DELETE
  1. Auf der Registerkarte für den Entwurf des Formulars doppelklicken Sie auf die Schaltfläche Insert, um eine btnInsert_Click-Methode zu erstellen. Diese Methode führt die folgenden Aufgaben aus:

    • Sie instanziert ein ULCommand-Objekt und weist es einer INSERT-Anweisung zu, die den Wert in das Textfeld in der Datenbank einfügt.

    • Die Anweisung ausführen.

    • Das ULCommand-Objekt entfernen.

    • Das Listenfeld aktualisieren.

    • Eine Fehlermeldung ausgeben, falls ein Fehler auftritt. Bei SQL-Fehlern wird auch der Fehlercode ausgegeben.

      Weitere Hinweise finden Sie unter Fehlermeldungen.

    Bei C# fügen Sie der Methode btnInsert_Click folgenden Code hinzu.



    //Visual C#
    try {
        long RowsInserted;
        using( ULCommand cmd = Conn.CreateCommand() ) {
            cmd.CommandText = 
                "INSERT INTO Names(name) VALUES (?)";
            cmd.Parameters.Add("", txtName.Text);
            RowsInserted = cmd.ExecuteNonQuery();
        }
        RefreshListBox();
    } 
    catch( Exception err ) {
        MessageBox.Show("Exception: " + err.Message );
    }

    Bei Visual Basic fügen Sie der Methode btnInsert_Click folgenden Code hinzu.



    'Visual Basic
    Try
        Dim RowsInserted As Long
        Dim cmd As ULCommand = Conn.CreateCommand()
        cmd.CommandText = "INSERT INTO Names(name) VALUES (?)"
        cmd.Parameters.Add("", txtName.Text)
        RowsInserted = cmd.ExecuteNonQuery()
        cmd.Dispose()
        RefreshListBox()
    Catch
        MsgBox("Exception: " + Err.Description)
    End Try
  2. Auf der Registerkarte für den Entwurf des Formulars doppelklicken Sie auf die Schaltfläche Update, um eine btnUpdate_Click-Methode zu erstellen. Diese Methode führt die folgenden Aufgaben aus:

    • Sie instanziert ein ULCommand-Objekt und weist es einer UPDATE-Anweisung zu, die entsprechend der zugehörigen ID den Wert in das Textfeld in der Datenbank einfügt.

    • Die Anweisung ausführen.

    • Das ULCommand-Objekt entfernen.

    • Das Listenfeld aktualisieren.

    • Eine Fehlermeldung ausgeben, falls ein Fehler auftritt. Bei SQL-Fehlern wird auch der Fehlercode ausgegeben.

      Weitere Hinweise finden Sie unter Fehlermeldungen.

    Bei C# fügen Sie der Methode btnUpdate_Click folgenden Code hinzu.



    //Visual C#
    try {
        long RowsUpdated;
        int updateID = ids[ lbNames.SelectedIndex ];
        using( ULCommand cmd = Conn.CreateCommand() ){
            cmd.CommandText = 
                "UPDATE Names SET name = ? WHERE id = ?" ;
            cmd.Parameters.Add("", txtName.Text );
            cmd.Parameters.Add("", updateID);
            RowsUpdated = cmd.ExecuteNonQuery();
        }
        RefreshListBox();
    }
    catch( Exception err ) {
        MessageBox.Show(
            "Exception: " + err.Message);
    }

    Bei Visual Basic fügen Sie der Methode btnUpdate_Click folgenden Code hinzu.



    'Visual Basic
    Try
        Dim RowsUpdated As Long
        Dim updateID As Integer = ids(lbNames.SelectedIndex)
        Dim cmd As ULCommand = Conn.CreateCommand()
        cmd.CommandText = "UPDATE Names SET name = ? WHERE id = ?"
        cmd.Parameters.Add("", txtName.Text)
        cmd.Parameters.Add("", updateID)
        RowsUpdated = cmd.ExecuteNonQuery()
        cmd.Dispose()
        RefreshListBox()
    Catch
        MsgBox("Exception: " + Err.Description)
    End Try
  3. Auf der Registerkarte für den Entwurf des Formulars doppelklicken Sie auf die Schaltfläche Delete, um eine btnDelete_Click-Methode zu erstellen. Fügen Sie Code hinzu, um die folgenden Aufgaben auszuführen:

    • Ein ULCommand-Objekt instanzieren und ihm eine DELETE-Anweisung zuweisen. Mit der DELETE-Anweisung wird die ausgewählte Zeile basierend auf der verknüpften ID der Ganzzahl-Array IDs aus der Datenbank gelöscht.

    • Die Anweisung ausführen.

    • Das ULCommand-Objekt entfernen.

    • Das Listenfeld aktualisieren.

    • Eine Fehlermeldung ausgeben, falls ein Fehler auftritt. Bei SQL-Fehlern wird auch der Fehlercode ausgegeben.

      Weitere Hinweise finden Sie unter Fehlermeldungen.

    Bei C# fügen Sie der Methode btnDelete_Click folgenden Code hinzu.



    //Visual C#
    try{
        long RowsDeleted;
        int deleteID = ids[lbNames.SelectedIndex];
        using( ULCommand cmd = Conn.CreateCommand() ){
            cmd.CommandText = 
                "DELETE From Names WHERE id = ?" ;
            cmd.Parameters.Add("", deleteID);
            RowsDeleted = cmd.ExecuteNonQuery ();
        }
        RefreshListBox();
    } 
    catch( Exception err ) { 
        MessageBox.Show("Exception: " + err.Message );
    }

    Bei Visual Basic fügen Sie der Methode btnDelete_Click folgenden Code hinzu.



    'Visual Basic
    Try
        Dim RowsDeleted As Long
        Dim deleteID As Integer = ids(lbNames.SelectedIndex)
        Dim cmd As ULCommand = Conn.CreateCommand()
        cmd.CommandText = "DELETE From Names WHERE id = ?"
        cmd.Parameters.Add("", deleteID)
        RowsDeleted = cmd.ExecuteNonQuery()
        cmd.Dispose()
        RefreshListBox()
    Catch
        MsgBox("Exception: " + Err.Description)
    End Try
  4. Erstellen Sie Ihre Anwendung, um zu überprüfen, dass sie korrekt kompiliert.