如何从数据适配器填充主机文件数据集

数据集是数据的内存驻留表示形式,提供独立于数据源的一致关系编程模型。 数据集表示一组完整的数据,包括表、约束和表之间的关系。 由于数据集独立于数据源,因此数据集可以包含应用程序本地的数据,以及来自多个数据源的数据。 与现有数据源的交互通过 DataAdapter 对象进行控制。

属性 HostfileDataAdapter.SelectCommand 是从 HostFileCommand 数据源检索数据的对象。 方法 HostFileDataAdapter.Fill 用于使用 的结果 SelectCommand填充数据集。 Fill采用要填充的 对象和 DataTable 对象或 要用 从 SelectCommand返回的行填充的 DataTable 的名称作为其参数DataSet

方法 Fill 使用 HostFileDataReader 对象隐式返回用于在 对象中创建 DataSet 表的列名和类型,以及用于填充 对象中 DataSet 表行的数据。 表和列仅在不存在时才创建;否则, Fill 将使用现有的 DataSet 架构。 除非主键位于数据源中,并且 HostFileDataAdapter.MissingSchemaAction 设置为 MissingSchemaAction.AddWithKey,否则不会创建主键。 如果 Fill 发现表存在主键,则它将用数据源中的数据覆盖对象中的数据 DataSet ,这些行的主键列值与从数据源返回的行的值匹配。 如果未找到主键,则数据将追加到 对象中的 DataSet 表。 Fill 使用填充 DataSet 对象时可能存在的任何映射。

HostFileDataAdapter如果 遇到多个结果集,则会在 DataSet 对象中创建多个表。 这些表的命名方式为默认名称 Table 加上 N,N 从 0 开始递增,如以 Table0 为第一个表名,依次类推。 如果将表名作为参数传递给 Fill 方法,则会为表指定一个增量默认名称 TableNameN,从 TableName0 的“TableName”开始。

可以将任意数量的 HostFileDataAdapter 对象与 对象一 DataSet 起使用。 每个 DataAdapter 对象都可用于填充一个或多个 DataTable 对象,并将更新解析回相关数据源。 可以在本地将 和 Constraint 对象添加到 DataRelationDataSet ,使你能够关联来自不同数据源的数据。 一个或多个 DataAdapter 对象可以处理与每个数据源的通信。

从数据适配器填充主机文件数据集

  1. 使用 HostFileConnection创建与数据源的新连接。

  2. 使用 HostFileConnection.Open打开连接。

  3. 创建一个 SELECT 命令,用于描述使用 检索 HostFileCommand的数据。

  4. 创建一个 HostFileDataAdapter ,使用 HostFileConnection 与存储的数据进行交互。

  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 适配器配置