DbDataTable ist ein Intent-Design zum Lesen aus einer Datenquelle, die speicherinterne Änderungen an Daten vornimmt und schließlich ein Massenupdate der Datenquelle anhand der Daten im Speicher durchführt. Das Design DbDataTable implementiert den getrennten Modus von ADO.NET. dbDataTable kann folgende Aktionen durchführen: Erstmaliges Auffüllen der Speichertabelle mit den Ergebnissen einer SELECT-Anweisung über die Methode Fill(), Zugreifen auf die Metadaten über die Regel ColumnNames, Bestimmen der Zeilenanzahl über die Regel RowCount, Zugreifen auf die Daten über die Methoden GetFieldValue() oder GetRowFieldValues(), Hinzufügen neuer Zeilen in der Speichertabelle über die Methode AddRow(), Löschen von Zeilen aus der Speichertabelle über die Methode DeleteRow(), Ändern von Datenwerten in den Zeilen über die Methoden SetFieldValue() oder SetRowFieldValues(), Massenupdate der Datenquelle über die Methode Update().
ADO.NET-Designs setzen voraus, dass dbDataTable-Teile untergeordnete Elemente von dbConnection sind.
Name | Typ | Beschreibung |
---|---|---|
connection | Part | Verbindungsteil, in der Regel ein übergeordnetes Element |
TableName | String | Erforderlich: Gewünschter Name der Datenspeichertabelle |
SelectCommandText | String | Erforderlich: SQL-Anweisung |
Name | Typ | Beschreibung |
---|---|---|
RowCount | Integer | Anzahl der Datensätze in der Datentabelle |
ColumnNames | list | Liste der Spaltennamen |
Fill( ) As AnyStellt die Verbindung zur Datenquelle her und füllt die Speichertabelle mit den Daten auf
GetFieldValue( Row as Integer, Column as Any ) As AnyGibt den Wert an einer angegebenen nullbasierten Zeilennummer und Spalte zurück. Die Spalte ist eine Zeichenfolge oder eine nullbasierte Spaltennummer.
GetRowFieldValues( Row As Integer ) As ListGibt die Liste der Werte an einer angegebenen nullbasierten Zeile zurück
AddRow( fieldValues As List, _ Optional update? As Boolean = False ) As AnyFügt eine neue Zeile in die Datentabelle ein. Die Werte werden aus der Liste gelesen. Die Reihenfolge der Werte muss den Spaltennamen der Datentabelle entsprechen. Wenn die Änderung sofort in die Datenquelle übertragen werden soll, rufen Sie die Methode mit update? :=True auf.
SetFieldValue( Row As Integer, _ Column as Any, _ Value As Any, _ Optional update? As Boolean = False ) As AnyLegt einen neuen Wert für das Feld fest. Die Zeile ist eine nullbasierte Ganzzahl; die Spalte ist entweder eine nullbasierte Ganzzahl oder die Zeichenfolge mit dem Spaltennamen. Wenn die Änderung sofort in die Datenquelle übertragen werden soll, rufen Sie die Methode mit update?:=True auf.
SetRowFieldValues( Row As Integer, _ Values As List, _ Optional update? As Boolean = False ) As AnyLegt die vorhandene Zeile mit den neuen Werten fest. Die Zeile ist eine nullbasierte Ganzzahl. Die Reihenfolge der Werte muss der Reihenfolge der Spalten in der Datentabelle entsprechen. Wenn die Änderung sofort in die Datenquelle übertragen werden soll, rufen Sie die Methode mit update?:=True auf.
DeleteRow( Row As Integer, _ Optional update? As Boolean = False ) As AnyLöscht die Zeile (nullbasiert) aus der Datentabelle. Wenn die Änderung sofort in die Datenquelle übertragen werden soll, rufen Sie die Methode mit update?:=True auf.
Update( Optional refresh? As Boolean = True ) As AnyÜberträgt alle Änderungen an der Datentabelle in die Datenquelle. Der Inhalt der Datentabelle kann wahlweise aktualisiert werden.
In diesem Fall wird das Ergebnis in einer Ergebnismenge zurückgegeben.
Untergeordneter Name: | spRun | |
Untergeordnetes Design: | DbQueryCommand | |
Name | Typ | Angegeben |
connection | Part | Root.sqlServerConnection |
tableName | String | MemoryTable |
SelectCommandText | String | SELECT * From CarsTable |
Intent >AddRow({100,"Tatra","White","Czech"}) ?Add new car --> True Intent >DeleteRow(1) ?Delete ?Lada? car --> True Intent >SetFieldValue(4,"Comments","Italian") ?Change Italia->Italian --> True Intent >Update() ?Bulk update --> True