如何從資料配接器填入主機檔案資料集

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

屬性 HostfileDataAdapter.SelectCommand 是從 HostFileCommand 資料來源擷取資料的 物件。 方法 HostFileDataAdapter.Fill 可用來將 的結果 SelectCommand 填入資料集。 Fill會採用 要填入的物件和 DataTable 物件,或是要填入之資料 SelectCommand 列的名稱 DataTable 做為其引數 DataSet

方法 FillHostFileDataReader 隱含地使用 物件傳回用來在 物件中 DataSet 建立資料表的資料行名稱和類型,以及填入 物件中 DataSet 資料表資料列的資料。 資料表和資料行只有在不存在時才會建立;否則 Fill 會使用現有的 DataSet 結構描述。 除非主鍵位於資料來源中,否則不會建立主鍵,而且 HostFileDataAdapter.MissingSchemaAction 會設定為 MissingSchemaAction.AddWithKey 。 如果 Fill 發現資料表有主鍵存在,它會以資料來源中的資料覆寫 物件中的資料 DataSet ,其中主鍵資料行值符合資料來源傳回的資料列。 如果找不到主鍵,資料會附加至 物件中的 DataSet 資料表。 Fill 會使用填入物件時 DataSet 可能存在的任何對應。

HostFileDataAdapter如果 遇到多個結果集,它會在 物件中 DataSet 建立多個資料表。 資料表會指定 TableN 的遞增預設名稱,從 "Table" 開始 (Table0)。 如果將資料表名稱當做引數傳遞至 Fill 方法,資料表就會獲得 TableNameN 的累加預設名稱,開頭為 TableName0 的 「TableName」。

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

從資料配接器填入主機檔案資料集

  1. 使用 HostFileConnection 建立資料來源的新連線。

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

  3. 建立 SELECT 命令,描述使用 擷取 HostFileCommand 的資料。

  4. 使用 HostFileDataAdapterHostFileConnection 來與預存資料互動。

  5. 建立 DataSet 物件以將資料儲存在本機。

  6. 使用 DataSet 物件和 Fill 命令,透過 HostFileDataAdapter 擷取資料。

範例

下列程式碼範例示範如何透過 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 配接器設定