데이터 어댑터에서 호스트 파일 데이터 세트를 채우는 방법
데이터 세트는 데이터 원본과 독립적으로 일관된 관계형 프로그래밍 모델을 제공하는 데이터의 메모리 상주 표현입니다. 데이터 세트는 테이블, 제약 조건 및 테이블 간의 관계를 포함한 전체 데이터 집합을 나타냅니다. 데이터 세트는 데이터 원본과 독립적이므로 데이터 세트에는 애플리케이션에 대한 로컬 데이터와 여러 데이터 원본의 데이터가 포함될 수 있습니다. 기존 데이터 원본과의 상호 작용은 개체를 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
개체에서 각 데이터 소스와의 통신을 처리할 수 있습니다.
데이터 어댑터에서 호스트 파일 데이터 세트를 채웁니다.
를 사용하여
HostFileConnection
데이터 원본에 대한 새 연결을 만듭니다.을 사용하여
HostFileConnection.Open
연결을 엽니다.를 사용하여 검색
HostFileCommand
할 데이터를 설명하는 SELECT 명령을 만듭니다.HostFileDataAdapter
저장된 데이터와 상호 작용하는 usingHostFileConnection
를 만듭니다.데이터를 로컬로
DataSet
저장할 개체를 만듭니다.개체 및 명령을 사용하여 을
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
에서 개체 및 cnstring
및 ccsid
매개 변수를 사용하면 관련 정보를 사용하여 테스트 SQL 명령을 빠르게 만들 수 있습니다.