共用方式為


如何從數據配接器填入主機檔案數據集

數據集是數據的記憶體常駐表示法,可提供與數據源無關的一致關係型程序設計模型。 數據集代表一組完整的數據,包括數據表、條件約束和數據表之間的關聯性。 因為數據集與數據源無關,數據集可以包含應用程式本機的數據,以及來自多個數據源的數據。 與現有數據源的互動是透過 DataAdapter 物件控制。

屬性 HostfileDataAdapter.SelectCommand 是從 HostFileCommand 數據源擷取數據的物件。 使用 HostFileDataAdapter.Fill 方法可將 SelectCommand 的結果填入數據集。 Fill的參數包括一個待填入的DataSet物件,以及DataTable物件或名稱,或要填入由SelectCommand返回的數據列的DataTable名稱。

Fill 方法會隱含地使用 HostFileDataReader 物件,來傳回在 DataSet 物件中建立資料表時使用的欄位名稱和類型,以及在 DataSet 物件中填充資料表列所需的數據。 只有在數據表和數據行不存在時才會建立;否則 Fill 會使用現有的 DataSet 架構。 除非主鍵位於數據源中,否則不會建立主鍵,而且 HostFileDataAdapter.MissingSchemaAction 設定為 MissingSchemaAction.AddWithKey。 如果 Fill 發現某張資料表存在主鍵,它將以資料來源中的資料覆寫 DataSet 物件中的資料,其中主鍵欄位的值與資料來源傳回的資料列相匹配。 如果找不到主鍵,數據會附加至 物件中的 DataSet 數據表。 在填入 DataSet 物件時,Fill 會使用可能存在的任何對應。

HostFileDataAdapter如果 遇到多個結果集,它會在物件中DataSet建立多個數據表。 數據表會指定 TableN 的累加預設名稱,開頭為 Table0 的 “Table”。 如果將數據表名稱當做自變數傳遞至 Fill 方法,數據表就會得到 TableNameN 的累加預設名稱,從 TableName0 的 “TableName” 開始。

您可以使用任意數目 HostFileDataAdapter 的物件搭配 DataSet 物件。 每個 DataAdapter 物件都可以用來填滿一或多個 DataTable 物件,並將更新解析回相關的數據源。 您可以將 DataRelationConstraint 物件新增至本機 DataSet,使您能夠關聯來自不同數據來源的數據。 一或多個 DataAdapter 物件可以處理與每個數據源的通訊。

從數據配接器填入主機檔案數據集

  1. 使用 HostFileConnection建立與數據源的新連線。

  2. 使用 HostFileConnection.Open開啟連接。

  3. 建立 SELECT 命令,以描述要擷取的數據 HostFileCommand

  4. 建立 HostFileDataAdapter 使用 HostFileConnection 來與預存的數據互動。

  5. 建立 DataSet 物件以在本機儲存數據。

  6. 透過HostFileDataAdapter,使用DataSet物件和Fill命令來提取數據。

範例

下列程式代碼範例示範如何透過 HostFileDataAdapter填滿數據集。 在此範例中,ETCMLogging 和 HostFileUtils 物件分別提供記錄和公用程式功能。

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);  
            }  
        }  

在此程式代碼範例中 HostFileUtils ,物件和 和 cnstringccsid 參數可讓您使用相關信息快速建立測試 SQL 命令。

另請參閱

使用主機檔案適配器和數據集
主機檔案配置的 BizTalk 介面卡