다음을 통해 공유


데이터 어댑터에서 호스트 파일 데이터 세트를 채우는 방법

데이터 세트는 데이터 원본과 독립적으로 일관된 관계형 프로그래밍 모델을 제공하는 데이터의 메모리 상주 표현입니다. 데이터 세트는 테이블, 제약 조건 및 테이블 간의 관계를 포함한 전체 데이터 집합을 나타냅니다. 데이터 세트는 데이터 원본과 독립적이므로 데이터 세트에는 애플리케이션에 대한 로컬 데이터와 여러 데이터 원본의 데이터가 포함될 수 있습니다. 기존 데이터 원본과의 상호 작용은 개체를 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 만들어집니다. 테이블에는 Table0부터 시작하는 증분 기본 이름인 TableN이 지정됩니다. 테이블 이름이 메서드에 Fill 인수로 전달되면 테이블에 TableName0의 "TableName"부터 TableNameN의 증분 기본 이름이 지정됩니다.

개체와 함께 임의의 수의 HostFileDataAdapter 개체를 DataSet 사용할 수 있습니다. 각 DataAdapter 개체를 사용하여 하나 이상의 DataTable 개체를 채우고 관련 데이터 원본으로 업데이트를 다시 resolve 수 있습니다. 및 Constraint 개체를 로컬에 DataSet 추가하여 DataRelation 서로 다른 데이터 원본의 데이터를 연결할 수 있습니다. 하나 이상의 DataAdapter 개체에서 각 데이터 소스와의 통신을 처리할 수 있습니다.

데이터 어댑터에서 호스트 파일 데이터 세트를 채웁니다.

  1. 를 사용하여 HostFileConnection데이터 원본에 대한 새 연결을 만듭니다.

  2. 을 사용하여 HostFileConnection.Open연결을 엽니다.

  3. 를 사용하여 검색 HostFileCommand할 데이터를 설명하는 SELECT 명령을 만듭니다.

  4. HostFileDataAdapter 저장된 데이터와 상호 작용하는 using HostFileConnection 를 만듭니다.

  5. 데이터를 로컬로 DataSet 저장할 개체를 만듭니다.

  6. 개체 및 명령을 사용하여 을 DataSet 통해 HostFileDataAdapter 데이터를 검색합니다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 어댑터 구성