Um einen Einfüge-, Aktualisierungs- oder Löschvorgang mit dem SACommand-Objekt auszuführen, verwenden Sie die ExecuteNonQuery-Funktion. Die ExecuteNonQuery-Funktion setzt eine Abfrage (SQL-Anweisung oder gespeicherte Prozedur) ab, die keine Ergebnismenge zurückgibt. Siehe ExecuteNonQuery-Methode.
Änderungen (Einfügen, Aktualisieren oder Löschen) sind jedoch nur an Daten möglich, die aus einer einzelnen Tabelle stammen. Sie können keine Ergebnismengen aktualisieren, die auf Joins basieren. Sie müssen mit einer Datenbank verbunden sein, um das SACommand-Objekt verwenden zu können.
Hinweise zum Abruf von Primärschlüsselwerten für automatisch inkrementierte Primärschlüssel finden Sie im Abschnitt Primärschlüsselwerte abrufen.
Wenn Sie die Isolationsstufe für eine SQL-Anweisung definieren möchten, müssen Sie das SACommand-Objekt als Teil eines SATransaction-Objekts verwenden. Wenn Sie Daten ohne SATransaction-Objekt ändern, arbeitet der .NET-Datenprovider im Autocommit-Modus, sodass alle Änderungen sofort übernommen werden. Siehe Transaktionsverarbeitung.
Deklarieren und initialisieren Sie ein SAConnection-Objekt.
SAConnection conn = new SAConnection( c_connStr ); conn.Open(); |
Öffnen Sie die Verbindung.
conn.Open(); |
Fügen Sie ein SACommand-Objekt hinzu, um eine INSERT-Anweisung zu definieren und auszuführen.
Sie können mit der ExecuteNonQuery-Methode INSERT-, UPDATE- oder DELETE-Anweisungen verwenden.
SACommand insertCmd = new SACommand( "INSERT INTO Departments( DepartmentID, DepartmentName ) VALUES( ?, ? )", conn ); |
Wenn Sie eine gespeicherte Prozedur aufrufen, müssen Sie die Parameter für die gespeicherte Prozedur angeben.
Weitere Hinweise finden Sie unter Gespeicherte Prozeduren verwenden und SAParameter-Klasse.
Definieren Sie die Parameter für das SACommand-Objekt.
Der nachfolgende Code definiert Parameter für die Spalten DepartmentID bzw. DepartmentName.
SAParameter parm = new SAParameter(); parm.SADbType = SADbType.Integer; insertCmd.Parameters.Add( parm ); parm = new SAParameter(); parm.SADbType = SADbType.Char; insertCmd.Parameters.Add( parm ); |
Fügen Sie die neuen Werte ein und rufen Sie die ExecuteNonQuery-Methode auf, um die Änderungen in der Datenbank zu übernehmen.
insertCmd.Parameters[0].Value = 600; insertCmd.Parameters[1].Value = "Eastern Sales"; int recordsAffected = insertCmd.ExecuteNonQuery(); insertCmd.Parameters[0].Value = 700; insertCmd.Parameters[1].Value = "Western Sales"; recordsAffected = insertCmd.ExecuteNonQuery(); |
Zeigen Sie die Ergebnisse an und binden Sie sie an das Raster der Anzeige.
SACommand selectCmd = new SACommand( "SELECT * FROM Departments", conn ); SADataReader dr = selectCmd.ExecuteReader(); System.Windows.Forms.DataGrid dataGrid; dataGrid = new System.Windows.Forms.DataGrid(); dataGrid.Location = new Point(10, 10); dataGrid.Size = new Size(275, 200); dataGrid.CaptionText = "iAnywhere SACommand Example"; this.Controls.Add(dataGrid); dataGrid.DataSource = dr; dataGrid.Show(); |
Schließen Sie das SADataReader- und das SAConnection-Objekt.
dr.Close(); conn.Close(); |
Deklarieren und initialisieren Sie ein SAConnection-Objekt.
SAConnection conn = new SAConnection( c_connStr ); |
Öffnen Sie die Verbindung.
conn.Open(); |
Fügen Sie ein SACommand-Objekt hinzu, um eine UPDATE-Anweisung zu definieren und auszuführen.
Sie können mit der ExecuteNonQuery-Methode INSERT-, UPDATE- oder DELETE-Anweisungen verwenden.
SACommand updateCmd = new SACommand( "UPDATE Departments SET DepartmentName = 'Engineering' WHERE DepartmentID=100", conn ); |
Wenn Sie eine gespeicherte Prozedur aufrufen, müssen Sie die Parameter für die gespeicherte Prozedur angeben.
Weitere Hinweise finden Sie unter Gespeicherte Prozeduren verwenden und SAParameter-Klasse.
Rufen Sie die ExecuteNonQuery-Methode auf, um die Änderungen in der Datenbank zu übernehmen.
int recordsAffected = updateCmd.ExecuteNonQuery(); |
Zeigen Sie die Ergebnisse an und binden Sie sie an das Raster der Anzeige.
SACommand selectCmd = new SACommand( "SELECT * FROM Departments", conn ); SADataReader dr = selectCmd.ExecuteReader(); dataGrid.DataSource = dr; |
Schließen Sie das SADataReader- und das SAConnection-Objekt.
dr.Close(); conn.Close(); |
Deklarieren und initialisieren Sie ein SAConnection-Objekt.
SAConnection conn = new SAConnection( c_connStr ); |
Öffnen Sie die Verbindung.
conn.Open(); |
Fügen Sie ein SACommand-Objekt hinzu, um eine DELETE-Anweisung zu definieren und auszuführen.
Sie können mit der ExecuteNonQuery-Methode INSERT-, UPDATE- oder DELETE-Anweisungen verwenden.
SACommand deleteCmd = new SACommand( "DELETE FROM Departments WHERE ( DepartmentID > 500 )", conn ); |
Wenn Sie eine gespeicherte Prozedur aufrufen, müssen Sie die Parameter für die gespeicherte Prozedur angeben.
Weitere Hinweise finden Sie unter Gespeicherte Prozeduren verwenden und SAParameter-Klasse.
Rufen Sie die ExecuteNonQuery-Methode auf, um die Änderungen in der Datenbank zu übernehmen.
int recordsAffected = deleteCmd.ExecuteNonQuery(); |
Schließen Sie das SAConnection-Objekt.
conn.Close(); |
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |