Freigeben über


Auffüllen eines Hostdatei-Datasets aus dem Datenadapter

Das Dataset ist eine speicherresidente Darstellung von Daten, die ein konsistentes relationales Programmiermodell unabhängig von der Datenquelle bereitstellt. Das Dataset stellt einen vollständigen Satz von Daten dar, einschließlich Tabellen, Einschränkungen und Beziehungen zwischen den Tabellen. Da das Dataset von der Datenquelle unabhängig ist, kann ein Dataset lokale Daten zur Anwendung und auch Daten aus mehreren Datenquellen enthalten. Die Interaktion mit vorhandenen Datenquellen wird über das DataAdapter Objekt gesteuert.

Die HostfileDataAdapter.SelectCommand Eigenschaft ist ein HostFileCommand Objekt, das Daten aus der Datenquelle zurückholt. Die HostFileDataAdapter.Fill Methode wird verwendet, um einen Datensatz mit den Ergebnissen von SelectCommand zu füllen. Fill nimmt als Argumente ein zu befüllendes DataSet-Objekt und ein DataTable-Objekt oder den Namen des DataTable-Objekts, das mit den Zeilen gefüllt werden soll, die von der SelectCommand zurückgegeben werden.

Die Fill Methode verwendet das HostFileDataReader Objekt implizit, um die Spaltennamen und -typen zurückzugeben, die zum Erstellen der Tabellen im DataSet Objekt verwendet werden, sowie die Daten zum Auffüllen der Zeilen der Tabellen im DataSet Objekt. Tabellen und Spalten werden nur erstellt, wenn sie noch nicht vorhanden sind. Andernfalls verwendet die Fill -Methode das vorhandene DataSet -Schema. Primärschlüssel werden nur erstellt, wenn sie sich in der Datenquelle befinden und HostFileDataAdapter.MissingSchemaAction auf MissingSchemaAction.AddWithKey gesetzt ist. Wenn Fill feststellt, dass ein Primärschlüssel für eine Tabelle vorhanden ist, überschreibt es die Daten im DataSet-Objekt mit den Daten aus der Datenquelle für die Zeilen, deren Primärschlüsselspaltenwerte mit denen der aus der Datenquelle zurückgegebenen Zeile übereinstimmen. Wenn kein Primärschlüssel gefunden wird, werden die Daten an die Tabellen im DataSet Objekt angefügt. Fill verwendet alle Zuordnungen, die beim Auffüllen des DataSet Objekts vorhanden sein können.

Wenn das HostFileDataAdapter auf mehrere Resultsets stößt, werden im DataSet Objekt mehrere Tabellen erstellt. Die Tabellen erhalten einen inkrementellen Standardnamen von TableN, beginnend mit "Tabelle" für Tabelle0. Wenn ein Tabellenname als Argument an die Fill Methode übergeben wird, erhalten die Tabellen einen inkrementellen Standardnamen von TableNameN, beginnend mit "TableName" für TableName0.

Sie können eine beliebige Anzahl von HostFileDataAdapter Objekten mit einem DataSet Objekt verwenden. Jedes DataAdapter Objekt kann verwendet werden, um ein oder mehrere DataTable Objekte auszufüllen und Aktualisierungen zurück zur relevanten Datenquelle aufzulösen. Sie können DataRelation und Constraint Objekte lokal zu DataSet hinzufügen, sodass Sie Daten aus unterschiedlichen Datenquellen verknüpfen können. Für die Kommunikation mit den einzelnen Datenquellen sind ein oder mehrere DataAdapter -Objekte zuständig.

So füllen Sie ein Hostdatei-Dataset mit dem Datenadapter auf

  1. Erstellen Sie eine neue Verbindung mit Ihrer Datenquelle mithilfe von HostFileConnection.

  2. Öffnen Sie die Verbindung mithilfe von HostFileConnection.Open.

  3. Erstellen Sie einen SELECT-Befehl, der die abzurufenden HostFileCommandDaten beschreibt.

  4. Erstellen Sie eine HostFileDataAdapter unter Verwendung von HostFileConnection , um mit den gespeicherten Daten zu interagieren.

  5. Erstellen Sie ein DataSet Objekt, um die Daten lokal zu speichern.

  6. Rufen Sie die Daten über HostFileDataAdapter mithilfe des DataSet Objekts und des Fill Befehls ab.

Beispiel

Das folgende Codebeispiel zeigt, wie eine Datensammlung mithilfe eines HostFileDataAdapter gefüllt wird. In diesem Beispiel liefern die ETCMLogging- und HostFileUtils-Objekte Protokollierungs- bzw. Hilfsfunktionen.

public void HFDAdapterCommandConstructor(ETCMLogging.Logging logging, string host, string ccsid, string cnstring, HostFileUtils.Utils.HostFileType hostfiletype)  
        {  
            HostFileUtils.Utils u = new HostFileUtils.Utils();  
            logging.LogInfo(host + "::" + hostfiletype.ToString());  
            HostFileUtils.Utils.MytestsVals[] Datavals = u.InitMytestsVals();  
  
            try  
            {  
                HostFileConnection cn = new HostFileConnection(cnstring);  
                cn.Open();  
                String SELECT = u.CreateSQLCommand(host, hostfiletype, cnstring, "SELECT", "MYTEST");  
                HostFileCommand hfc = new HostFileCommand(SELECT, cn);  
                HostFileDataAdapter hfda = new HostFileDataAdapter(hfc);  
                DataSet ds = new DataSet();  
                hfda.Fill(ds);  
                int[] cp = u.CheckColumns(SELECT, cn, logging);  
                u.ValidateDataSet(ds, logging, Datavals, cp);  
  
                cn.Close();  
            }  
            catch (Exception e)  
            {  
                logging.LogInfo(e.Message);  
                logging.LogFail(e.StackTrace);  
            }  
        }  

In diesem Codebeispiel können Sie mithilfe des HostFileUtils Objekts und der cnstring Parameter ccsid schnell einen SQL-Testbefehl mit den relevanten Informationen erstellen.

Siehe auch

Arbeiten mit dem Hostdateiadapter und -Dataset
BizTalk-Adapter für die Konfiguration von Hostdateien