DbDataAdapter.Fill 메서드

정의

DataSet 또는 DataTable을 채웁니다.

오버로드

Fill(DataSet, Int32, Int32, String, IDbCommand, CommandBehavior)

DataSet과 소스 테이블 이름, 명령 문자열과 명령 동작을 사용하여 지정된 범위에서 데이터 소스의 행과 일치하도록 DataSet의 행을 추가하거나 새로 고칩니다.

Fill(DataTable[], Int32, Int32, IDbCommand, CommandBehavior)

DataSetDataSet 이름을 사용하여 지정된 범위에서 데이터 소스의 행과 일치하도록 DataTable의 행을 추가하거나 새로 고칩니다.

Fill(DataSet, String, IDataReader, Int32, Int32)

DataSet, DataTableIDataReader 이름을 사용하여 지정된 범위에서 데이터 소스의 행과 일치하도록 DataSet의 행을 추가하거나 새로 고칩니다.

Fill(DataSet, Int32, Int32, String)

DataSetDataSet 이름을 사용하여 지정된 범위에서 데이터 소스의 행과 일치하도록 DataTable의 행을 추가하거나 새로 고칩니다.

Fill(Int32, Int32, DataTable[])

지정된 레코드에서 시작하여 지정된 최대 레코드 수까지 검색하는 데이터 원본의 행과 일치하도록 하나 이상의 DataTable 개체에 행을 추가하거나 새로 고칩니다.

Fill(DataTable)

DataSet 이름을 사용하여 지정된 범위에서 데이터 소스의 행과 일치하도록 DataTable의 행을 추가하거나 새로 고칩니다.

Fill(DataTable, IDataReader)

지정된 DataTableIDataReader 이름을 사용하여 데이터 소스의 행과 일치하도록 DataTable의 행을 추가하거나 새로 고칩니다.

Fill(DataSet, String)

DataSetDataSet 이름을 사용하여 데이터 소스의 행과 일치하도록 DataTable의 행을 추가하거나 새로 고칩니다.

Fill(DataSet)

DataSet의 행을 추가하거나 새로 고칩니다.

Fill(DataTable, IDbCommand, CommandBehavior)

지정된 DataTable, DataTableIDbCommand를 사용하여 데이터 소스의 행과 일치하도록 CommandBehavior의 행을 추가하거나 새로 고칩니다.

Fill(DataSet, Int32, Int32, String, IDbCommand, CommandBehavior)

DataSet과 소스 테이블 이름, 명령 문자열과 명령 동작을 사용하여 지정된 범위에서 데이터 소스의 행과 일치하도록 DataSet의 행을 추가하거나 새로 고칩니다.

protected:
 virtual int Fill(System::Data::DataSet ^ dataSet, int startRecord, int maxRecords, System::String ^ srcTable, System::Data::IDbCommand ^ command, System::Data::CommandBehavior behavior);
protected virtual int Fill (System.Data.DataSet dataSet, int startRecord, int maxRecords, string srcTable, System.Data.IDbCommand command, System.Data.CommandBehavior behavior);
override this.Fill : System.Data.DataSet * int * int * string * System.Data.IDbCommand * System.Data.CommandBehavior -> int
Protected Overridable Function Fill (dataSet As DataSet, startRecord As Integer, maxRecords As Integer, srcTable As String, command As IDbCommand, behavior As CommandBehavior) As Integer

매개 변수

dataSet
DataSet

레코드와 스키마(필요한 경우)로 채울 DataSet입니다.

startRecord
Int32

0부터 시작되는 시작 레코드 번호입니다.

maxRecords
Int32

검색할 수 있는 최대 레코드 수입니다. 시작 레코드 뒤의 모든 레코드를 검색하려면 0을 지정합니다.

srcTable
String

테이블 매핑에 사용할 원본 테이블의 이름입니다.

command
IDbCommand

데이터 소스에서 행을 검색하는 데 사용할 SQL SELECT 문입니다.

behavior
CommandBehavior

CommandBehavior 값 중 하나입니다.

반환

DataSet에 성공적으로 추가했거나 새로 고친 행의 수를 반환합니다. 여기에는 행을 반환하지 않는 문의 영향을 받는 행은 포함되지 않습니다.

예외

소스 테이블이 잘못된 경우

startRecord 매개 변수가 0보다 작은 경우

또는

maxRecords 매개 변수가 0보다 작은 경우

설명

maxRecords 값 0은 시작 레코드 다음에 있는 모든 레코드를 가져옵니다. 가 나머지 행 수보다 크면 maxRecords 나머지 행만 반환되고 오류가 발생하지 않습니다.

메서드는 Fill 연결된 SelectCommand 속성에 지정된 SELECT 문을 사용하여 데이터 원본에서 행을 검색합니다. SELECT 문과 사용 하 여 연결 된 연결 개체는 유효 해야 합니다. 하지만 열려 있이 필요가 없습니다. 전에 연결이 닫히면 Fill 는 데이터를 검색 하려면을 열고 다음 닫는 하는를 호출 합니다. 연결 하기 전에 열려 있으면 Fill 는 호출을 열린 상태로 유지 합니다.

Fill 작업이 대상에 행 추가 DataTable 개체를 DataSet만들기는 DataTable 경우 이미 없는 개체입니다. 개체를 Fill 만들 DataTable 때 작업은 일반적으로 열 이름 메타데이터만 만듭니다. 그러나 경우 합니다 MissingSchemaAction 속성이 AddWithKey, 적절 한 기본 키와 제약 조건도 만들어집니다.

에서 DbDataAdapter 를 채우는 DataTable동안 중복 열이 발견되면 "columnname1", "columnname 2", "columnname3" 등의 패턴을 사용하여 후속 의 이름을 생성합니다. 들어오는 데이터에 명명되지 않은 열이 포함된 경우 "Column1", "Column2" 패턴 등에 따라 에 배치 DataSet 됩니다. 여러 결과 집합이 추가 DataSet 되면 각 결과 집합이 별도의 테이블에 배치됩니다. 추가 결과 집합이 지정한 테이블 이름 (예: "Table", "Table1", "Table2" 및 등)에 정수 값을 추가 하 여 이름이 지정 됩니다. 앱에서 열 및 테이블 이름을 사용하는 경우 이러한 명명 패턴과 충돌이 없는지 확인합니다.

메서드는 Fill 이름이 대/소문자 DataSet 만 다른 여러 DataTable 개체를 포함하는 시나리오를 지원합니다. 이러한 상황에서 Fill 는 대/소문자 구분 비교를 수행하여 해당 테이블을 찾고 정확한 일치 항목이 없으면 새 테이블을 만듭니다. 다음 C# 코드는 이 동작을 보여 줍니다.

DataSet dataset = new DataSet();  
dataset.Tables.Add("aaa");  
dataset.Tables.Add("AAA");  
adapter.Fill(dataset, "aaa"); // Fills "aaa", which already exists in the DataSet.  
adapter.Fill(dataset, "Aaa"); // Adds a new table called "Aaa".  

가 호출되고 에 DataSet 대/소문자만 다른 이름이 하나 DataTable 만 포함되어 있으면 Fill 업데이트 DataTable 됩니다. 이 시나리오에서 비교는 대/소문자를 구분하지 않습니다. 다음 C# 코드는 이 동작을 보여 줍니다.

DataSet dataset = new DataSet();  
dataset.Tables.Add("aaa");  
adapter.Fill(dataset, "AAA"); // Fills table "aaa" because only one similarly named table is in the DataSet.  

사용할 수는 Fill 메서드를 여러 번에 동일한 DataTable입니다. 기본 키가 있는 경우 들어오는 행이 이미 존재 하는 일치 하는 행과 병합 됩니다. 들어오는 행에 추가 된 기본 키가 없으면는 DataTable합니다.

SelectCommand 가 OUTER JOIN의 결과를 반환하면 DataAdapter 는 결과 PrimaryKey 에 대해 DataTable값을 설정하지 않습니다. 중복 행을 올바르게 확인할 수 있도록 기본 키를 명시적으로 정의 해야 합니다. 자세한 내용은 기본 키 정의합니다.

참고

구현의 여러 결과 반환 하는 SQL 문을 일괄 처리할 때 FillFillSchema .NET Framework 데이터 공급자는 결과 대해서만 첫 번째 스키마 정보를 검색 합니다.

상속자 참고

메서드의 Fill(DataSet) 이 오버로드는 보호되며 .NET Framework 데이터 공급자가 사용하도록 설계되었습니다.

추가 정보

적용 대상

Fill(DataTable[], Int32, Int32, IDbCommand, CommandBehavior)

DataSetDataSet 이름을 사용하여 지정된 범위에서 데이터 소스의 행과 일치하도록 DataTable의 행을 추가하거나 새로 고칩니다.

protected:
 virtual int Fill(cli::array <System::Data::DataTable ^> ^ dataTables, int startRecord, int maxRecords, System::Data::IDbCommand ^ command, System::Data::CommandBehavior behavior);
protected virtual int Fill (System.Data.DataTable[] dataTables, int startRecord, int maxRecords, System.Data.IDbCommand command, System.Data.CommandBehavior behavior);
override this.Fill : System.Data.DataTable[] * int * int * System.Data.IDbCommand * System.Data.CommandBehavior -> int
Protected Overridable Function Fill (dataTables As DataTable(), startRecord As Integer, maxRecords As Integer, command As IDbCommand, behavior As CommandBehavior) As Integer

매개 변수

dataTables
DataTable[]

데이터 소스에서 채울 DataTable 개체입니다.

startRecord
Int32

0부터 시작되는 시작 레코드 번호입니다.

maxRecords
Int32

검색할 수 있는 최대 레코드 수입니다. 시작 레코드 뒤의 모든 레코드를 검색하려면 0을 지정합니다.

command
IDbCommand

IDbCommand 개체를 채우기 위해 실행되는 DataTable입니다.

behavior
CommandBehavior

CommandBehavior 값 중 하나입니다.

반환

데이터 테이블에서 추가되거나 새로 고쳐진 행의 수입니다.

예외

DataSet가 잘못되었습니다.

소스 테이블이 잘못된 경우

또는

연결이 잘못된 경우

연결을 찾을 수 없는 경우

startRecord 매개 변수가 0보다 작은 경우

또는

maxRecords 매개 변수가 0보다 작은 경우

설명

maxRecords 값 0은 시작 레코드 다음에 있는 모든 레코드를 가져옵니다. 가 나머지 행 수보다 크면 maxRecords 나머지 행만 반환되고 오류가 발생하지 않습니다.

메서드는 Fill SELECT 문을 사용하여 데이터 원본에서 데이터를 검색합니다. SELECT 문과 연결된 개체는 IDbConnection 유효해야 하지만 열 필요는 없습니다. 가 IDbConnection 호출되기 전에 Fill 가 닫혀 있으면 데이터를 검색하기 위해 연 다음 닫힙니다. 연결 하기 전에 열려 있으면 Fill 는 호출을 열린 상태로 유지 합니다.

명령이 행을 반환하지 않으면 에 테이블이 추가 DataSet되지 않지만 예외는 발생하지 않습니다.

개체가 DbDataAdapter 를 채우는 DataTable동안 중복 열이 발견되면 "columnname 1", "columnname2", "columnname3" 등의 패턴을 사용하여 후속 의 이름을 생성합니다. 들어오는 데이터에 명명되지 않은 열이 포함된 경우 "Column1", "Column2" 패턴 등에 따라 에 배치 DataSet 됩니다.

지정된 쿼리가 여러 결과를 반환하면 각 결과 집합이 별도의 테이블에 배치됩니다. 추가 결과 집합이 지정한 테이블 이름 (예: "Table", "Table1", "Table2" 및 등)에 정수 값을 추가 하 여 이름이 지정 됩니다. 행을 반환하지 않는 쿼리에 대해 테이블이 만들어지지 않으므로 삽입 쿼리를 처리한 다음 선택 쿼리를 처리하려는 경우 첫 번째 테이블이므로 select 쿼리에 대해 만든 테이블의 이름은 "Table"으로 지정됩니다. 앱에서 열 및 테이블 이름을 사용하는 경우 이러한 명명 패턴과 충돌이 없는지 확인합니다.

메서드는 Fill 이름이 대/소문자 DataSet 만 다른 여러 DataTable 개체를 포함하는 시나리오를 지원합니다. 이러한 상황에서 Fill 는 대/소문자 구분 비교를 수행하여 해당 테이블을 찾고 정확한 일치 항목이 없으면 새 테이블을 만듭니다. 다음 C# 코드는 이 동작을 보여 줍니다.

DataSet dataset = new DataSet();  
dataset.Tables.Add("aaa");  
dataset.Tables.Add("AAA");  
adapter.Fill(dataset, "aaa"); // Fills "aaa", which already exists in the DataSet.  
adapter.Fill(dataset, "Aaa"); // Adds a new table called "Aaa".  

가 호출되고 에 DataSet 대/소문자만 다른 이름이 하나 DataTable 만 포함되어 있으면 Fill 업데이트 DataTable 됩니다. 이 시나리오에서 비교는 대/소문자를 구분하지 않습니다. 다음 C# 코드는 이 동작을 보여 줍니다.

DataSet dataset = new DataSet();  
dataset.Tables.Add("aaa");  
adapter.Fill(dataset, "AAA"); // Fills table "aaa" because only one similarly named table is in the DataSet.  

데이터 테이블을 채우는 동안 오류 또는 예외가 발생하면 오류가 발생하기 전에 추가된 행이 데이터 테이블에 남아 있습니다. 나머지 작업은 중단됩니다.

개체를 채우는 DataTable 데 사용되는 SELECT 문이 일괄 처리 SQL 문과 같은 여러 결과를 반환하는 경우 다음 사항을 알고 있어야 합니다.

  • 일괄 처리 SQL 문 maxRecords 에서 여러 결과를 처리하는 경우 첫 번째 결과에만 적용됩니다. 챕터링된 결과가 포함된 행도 마찬가지입니다(OLE DB용 데이터 공급자만 .NET Framework). 최상위 결과는 로 제한 maxRecords되지만 모든 자식 행이 추가됩니다.

  • 결과 중 하나에 오류가 있으면 모든 후속 결과를 건너뜁니다.

참고

DataSet 로 표시된 maxRecords레코드 수를 초과하지 않습니다. 그러나 쿼리에서 생성된 전체 결과 집합은 여전히 서버에서 반환됩니다.

상속자 참고

재정의 하는 경우 Fill(DataSet) 파생된 클래스에서 호출 해야 기본 클래스의 Fill(DataSet) 메서드.

추가 정보

적용 대상

Fill(DataSet, String, IDataReader, Int32, Int32)

DataSet, DataTableIDataReader 이름을 사용하여 지정된 범위에서 데이터 소스의 행과 일치하도록 DataSet의 행을 추가하거나 새로 고칩니다.

protected:
 virtual int Fill(System::Data::DataSet ^ dataSet, System::String ^ srcTable, System::Data::IDataReader ^ dataReader, int startRecord, int maxRecords);
protected virtual int Fill (System.Data.DataSet dataSet, string srcTable, System.Data.IDataReader dataReader, int startRecord, int maxRecords);
override this.Fill : System.Data.DataSet * string * System.Data.IDataReader * int * int -> int
Protected Overridable Function Fill (dataSet As DataSet, srcTable As String, dataReader As IDataReader, startRecord As Integer, maxRecords As Integer) As Integer

매개 변수

dataSet
DataSet

레코드와 스키마(필요한 경우)로 채울 DataSet입니다.

srcTable
String

테이블 매핑에 사용할 DataTable의 이름입니다.

dataReader
IDataReader

IDataReader의 이름입니다.

startRecord
Int32

0부터 시작되는 시작 레코드 번호입니다.

maxRecords
Int32

검색할 수 있는 최대 레코드 수입니다. 시작 레코드 뒤의 모든 레코드를 검색하려면 0을 지정합니다.

반환

DataSet에 성공적으로 추가했거나 새로 고친 행의 수를 반환합니다. 여기에는 행을 반환하지 않는 문의 영향을 받는 행은 포함되지 않습니다.

예외

startRecord 가 0보다 작습니다.

또는

maxRecords 가 0보다 작습니다.

설명

maxRecords 값 0은 시작 레코드 다음에 찾은 모든 레코드를 가져옵니다. 가 나머지 행 수보다 크면 maxRecords 나머지 행만 반환되고 오류가 발생하지 않습니다.

적용 대상

Fill(DataSet, Int32, Int32, String)

DataSetDataSet 이름을 사용하여 지정된 범위에서 데이터 소스의 행과 일치하도록 DataTable의 행을 추가하거나 새로 고칩니다.

public:
 int Fill(System::Data::DataSet ^ dataSet, int startRecord, int maxRecords, System::String ^ srcTable);
public int Fill (System.Data.DataSet dataSet, int startRecord, int maxRecords, string srcTable);
override this.Fill : System.Data.DataSet * int * int * string -> int
Public Function Fill (dataSet As DataSet, startRecord As Integer, maxRecords As Integer, srcTable As String) As Integer

매개 변수

dataSet
DataSet

레코드와 스키마(필요한 경우)로 채울 DataSet입니다.

startRecord
Int32

0부터 시작되는 시작 레코드 번호입니다.

maxRecords
Int32

검색할 수 있는 최대 레코드 수입니다. 시작 레코드 뒤의 모든 레코드를 검색하려면 0을 지정합니다.

srcTable
String

테이블 매핑에 사용할 원본 테이블의 이름입니다.

반환

DataSet에 성공적으로 추가했거나 새로 고친 행의 수를 반환합니다. 여기에는 행을 반환하지 않는 문의 영향을 받는 행은 포함되지 않습니다.

예외

DataSet가 잘못되었습니다.

소스 테이블이 잘못된 경우

또는

연결이 잘못된 경우

연결을 찾을 수 없는 경우

startRecord 매개 변수가 0보다 작은 경우

또는

maxRecords 매개 변수가 0보다 작은 경우

예제

다음 예제에서는 파생 클래스 를 OleDbDataAdapter사용하여 Categories 테이블에서 행 10부터 15개 행으로 를 채웁니다DataSet. 이 예에서는 만들었다고 가정를 OleDbDataAdapterDataSet합니다.

public void GetRecords()
{
    // ...
    // create dataSet and adapter
    // ...
    adapter.Fill(dataSet,9,15,"Categories");
}
Public Sub GetRecords()
    ' ...
    ' create dataSet and adapter
    ' ...
    adapter.Fill(dataSet, 9, 15, "Categories")
End Sub

설명

maxRecords 값 0은 시작 레코드 다음에 찾은 모든 레코드를 가져옵니다. 가 나머지 행 수보다 크면 maxRecords 나머지 행만 반환되고 오류가 발생하지 않습니다.

해당 select 명령이 여러 결과를 Fill 반환하는 문인 경우 첫 번째 결과에만 적용됩니다 maxRecords .

메서드는 Fill SELECT 문을 사용하여 데이터 원본에서 데이터를 검색합니다. SELECT 문과 연결된 개체는 IDbConnection 유효해야 하지만 열 필요는 없습니다. 가 IDbConnection 호출되기 전에 Fill 가 닫힌 경우 데이터를 검색하기 위해 열린 다음 닫힙니다. 연결 하기 전에 열려 있으면 Fill 는 호출을 열린 상태로 유지 합니다.

명령이 행을 반환하지 않으면 에 테이블이 추가 DataSet되지 않지만 예외는 발생하지 않습니다.

개체가 DbDataAdapter 를 채우는 DataTable동안 중복 열이 발생하면 "columnname 1", "columnname2", "columnname3" 등의 패턴을 사용하여 후속 의 이름을 생성합니다. 들어오는 데이터에 명명되지 않은 열이 포함된 경우 "Column1", "Column2" 패턴 등에 따라 에 배치 DataSet 됩니다.

지정된 쿼리가 여러 결과를 반환하면 각 결과 집합이 별도의 테이블에 배치됩니다. 추가 결과 집합이 지정한 테이블 이름 (예: "Table", "Table1", "Table2" 및 등)에 정수 값을 추가 하 여 이름이 지정 됩니다. 행을 반환하지 않는 쿼리에 대해 테이블이 만들어지지 않으므로 삽입 쿼리를 처리한 다음 선택 쿼리를 처리하는 경우 첫 번째 테이블이므로 select 쿼리에 대해 만든 테이블의 이름은 "Table"입니다. 앱에서 열 및 테이블 이름을 사용하는 경우 이러한 명명 패턴과 충돌이 없는지 확인합니다.

메서드는 Fill 이름이 대/소문자 DataSet 별로만 다른 여러 DataTable 개체를 포함하는 시나리오를 지원합니다. 이러한 상황에서 Fill 는 대/소문자 구분 비교를 수행하여 해당 테이블을 찾고 정확한 일치 항목이 없으면 새 테이블을 만듭니다. 다음 C# 코드는 이 동작을 보여 줍니다.

DataSet dataset = new DataSet();  
dataset.Tables.Add("aaa");  
dataset.Tables.Add("AAA");  
adapter.Fill(dataset, "aaa"); // Fills "aaa", which already exists in the DataSet.  
adapter.Fill(dataset, "Aaa"); // Adds a new table called "Aaa".  

가 호출되고 에 DataSet 대/소문자만 다른 이름이 하나 DataTable 만 포함된 경우 Fill 업데이트 DataTable 됩니다. 이 시나리오에서 비교는 대/소문자를 구분하지 않습니다. 다음 C# 코드는 이 동작을 보여 줍니다.

DataSet dataset = new DataSet();  
dataset.Tables.Add("aaa");  
adapter.Fill(dataset, "AAA"); // Fills table "aaa" because only one similarly named table is in the DataSet.  

데이터 테이블을 채우는 동안 오류 또는 예외가 발생하면 오류가 발생하기 전에 추가된 행이 데이터 테이블에 남아 있습니다. 나머지 작업은 중단됩니다.

를 채우는 DataSet 데 사용되는 SELECT 문이 일괄 처리 SQL 문과 같은 여러 결과를 반환하는 경우 다음 사항에 유의해야 합니다.

  • 일괄 처리 SQL 문 maxRecords 에서 여러 결과를 처리하는 경우 첫 번째 결과에만 적용됩니다. 챕터링된 결과가 포함된 행도 마찬가지입니다(OLE DB용 데이터 공급자만 .NET Framework). 최상위 결과는 로 제한 maxRecords되지만 모든 자식 행이 추가됩니다.

  • 결과 중 하나에 오류가 포함된 경우 모든 후속 결과를 건너뛰고 에 DataSet추가되지 않습니다.

후속 Fill 호출을 사용하여 의 DataSet내용을 새로 고치는 경우 다음 두 조건을 충족해야 합니다.

  1. SQL 문은 처음에 를 채우는 DataSet데 사용된 문과 일치해야 합니다.

  2. 열 정보가 있어야 합니다.

기본 키 정보가 있으면 중복 행이 조정되고 에 해당하는 DataSetDataTable 한 번만 표시됩니다. 기본 키 정보는 의 속성을 지정하거나 속성을 DataTable로 설정 MissingSchemaActionAddWithKey하여 PrimaryKey 를 통해 FillSchema설정할 수 있습니다.

SelectCommand 가 OUTER JOIN의 결과를 반환하면 DataAdapter 는 결과 PrimaryKey 에 대해 DataTable값을 설정하지 않습니다. 중복 행을 올바르게 확인할 수 있도록 기본 키를 명시적으로 정의 해야 합니다. 자세한 내용은 기본 키 정의합니다.

참고

여러 결과를 반환하는 일괄 처리 SQL 문을 처리할 때 OLE DB용 .NET Framework 데이터 공급자에 대한 구현 FillSchema 은 첫 번째 결과에 대한 스키마 정보만 검색합니다. 여러 결과에 대한 스키마 정보를 검색하려면 로 설정된 AddWithKeyMissingSchemaAction 함께 를 사용합니다Fill.

참고

DataSet 로 표시된 maxRecords레코드 수를 초과하지 않습니다. 그러나 쿼리에서 생성된 전체 결과 집합은 여전히 서버에서 반환됩니다.

상속자 참고

재정의 하는 경우 Fill(DataSet) 파생된 클래스에서 호출 해야 기본 클래스의 Fill(DataSet) 메서드.

추가 정보

적용 대상

Fill(Int32, Int32, DataTable[])

지정된 레코드에서 시작하여 지정된 최대 레코드 수까지 검색하는 데이터 원본의 행과 일치하도록 하나 이상의 DataTable 개체에 행을 추가하거나 새로 고칩니다.

public:
 int Fill(int startRecord, int maxRecords, ... cli::array <System::Data::DataTable ^> ^ dataTables);
public int Fill (int startRecord, int maxRecords, params System.Data.DataTable[] dataTables);
override this.Fill : int * int * System.Data.DataTable[] -> int
Public Function Fill (startRecord As Integer, maxRecords As Integer, ParamArray dataTables As DataTable()) As Integer

매개 변수

startRecord
Int32

0부터 시작되는 시작 레코드 번호입니다.

maxRecords
Int32

검색할 수 있는 최대 레코드 수입니다. 시작 레코드 뒤의 모든 레코드를 검색하려면 0을 지정합니다.

dataTables
DataTable[]

데이터 소스에서 채울 DataTable 개체입니다.

반환

개체에 성공적으로 추가되거나 새로 고쳐진 행 수 DataTable 입니다. 행을 반환하지 않는 문의 영향을 받는 행은 이 값에 포함되지 않습니다.

예외

dataTablesnull 또는 빈 배열인 경우

startRecord 가 0보다 작습니다.

또는

maxRecords 가 0보다 작습니다.

설명

maxRecords 값 0은 시작 레코드 다음에 찾은 모든 레코드를 가져옵니다. 가 나머지 행 수보다 크면 maxRecords 나머지 행만 반환되고 오류가 발생하지 않습니다.

메서드는 Fill 연결된 SelectCommand 속성에 지정된 SELECT 문을 사용하여 데이터 원본에서 행을 검색합니다. SELECT 문과 사용 하 여 연결 된 연결 개체는 유효 해야 합니다. 하지만 열려 있이 필요가 없습니다. 가 호출되기 전에 Fill 연결이 닫힌 경우 데이터를 검색하기 위해 연결이 열리고 닫힙니다. 연결 하기 전에 열려 있으면 Fill 는 호출을 열린 상태로 유지 합니다.

Fill 작업이 대상에 행 추가 DataTable 개체를 DataSet만들기는 DataTable 경우 이미 없는 개체입니다. 개체를 Fill 만들 DataTable 때 작업은 일반적으로 열 이름 메타데이터만 만듭니다. 그러나 경우 합니다 MissingSchemaAction 속성이 AddWithKey, 적절 한 기본 키와 제약 조건도 만들어집니다.

SelectCommand 가 OUTER JOIN의 결과를 반환하면 DataAdapter 는 결과 PrimaryKey 에 대해 DataTable값을 설정하지 않습니다. 중복 행을 올바르게 확인할 수 있도록 기본 키를 명시적으로 정의 해야 합니다. 자세한 내용은 기본 키 정의합니다.

데이터 어댑터가 를 채우는 DataTable동안 중복 열이 발생하면 "columnname1", "columnname2", "columnname3" 패턴을 사용하여 후속 열의 이름을 생성합니다. 들어오는 데이터에 명명되지 않은 열이 포함된 경우 "Column1", "Column2" 패턴 등에 따라 에 배치 DataSet 됩니다. 여러 결과 집합이 에 DataSet추가되면 각 결과 집합이 별도의 테이블에 배치됩니다. 추가 결과 집합이 지정한 테이블 이름 (예: "Table", "Table1", "Table2" 및 등)에 정수 값을 추가 하 여 이름이 지정 됩니다. 앱에서 열 및 테이블 이름을 사용하는 경우 이러한 명명 패턴과 충돌이 없는지 확인합니다.

를 채우는 DataSet 데 사용되는 SELECT 문이 일괄 처리 SQL 문과 같은 여러 결과를 반환하는 경우 결과 중 하나에 오류가 포함된 경우 모든 후속 결과를 건너뛰고 에 DataSet추가되지 않습니다.

사용할 수는 Fill 메서드를 여러 번에 동일한 DataTable입니다. 기본 키가 있는 경우 들어오는 행이 이미 존재 하는 일치 하는 행과 병합 됩니다. 들어오는 행에 추가 된 기본 키가 없으면는 DataTable합니다.

참고

여러 결과를 반환하는 일괄 처리 SQL 문을 처리할 때 OLE DB용 .NET Framework 데이터 공급자에 대한 구현 FillSchema 은 첫 번째 결과에 대한 스키마 정보만 검색합니다. 여러 결과에 대한 스키마 정보를 검색하려면 로 설정된 AddWithKeyMissingSchemaAction 함께 를 사용합니다Fill.

추가 정보

적용 대상

Fill(DataTable)

DataSet 이름을 사용하여 지정된 범위에서 데이터 소스의 행과 일치하도록 DataTable의 행을 추가하거나 새로 고칩니다.

public:
 int Fill(System::Data::DataTable ^ dataTable);
public int Fill (System.Data.DataTable dataTable);
override this.Fill : System.Data.DataTable -> int
Public Function Fill (dataTable As DataTable) As Integer

매개 변수

dataTable
DataTable

테이블 매핑에 사용할 DataTable의 이름입니다.

반환

DataSet에 성공적으로 추가했거나 새로 고친 행의 수를 반환합니다. 여기에는 행을 반환하지 않는 문의 영향을 받는 행은 포함되지 않습니다.

예외

소스 테이블이 잘못된 경우

설명

메서드는 Fill 연결된 SelectCommand 속성에 지정된 SELECT 문을 사용하여 데이터 원본에서 행을 검색합니다. SELECT 문과 사용 하 여 연결 된 연결 개체는 유효 해야 합니다. 하지만 열려 있이 필요가 없습니다. 전에 연결이 닫히면 Fill 는 데이터를 검색 하려면을 열고 다음 닫는 하는를 호출 합니다. 연결 하기 전에 열려 있으면 Fill 는 호출을 열린 상태로 유지 합니다.

Fill 작업이 대상에 행 추가 DataTable 개체를 DataSet만들기는 DataTable 경우 이미 없는 개체입니다. 개체를 Fill 만들 DataTable 때 작업은 일반적으로 열 이름 메타데이터만 만듭니다. 그러나 경우 합니다 MissingSchemaAction 속성이 AddWithKey, 적절 한 기본 키와 제약 조건도 만들어집니다.

DbDataAdapter 채우는 DataTable동안 중복 열이 발생하면 "columnname 1", "columnname2", "columnname3" 등의 패턴을 사용하여 후속 의 이름을 생성합니다. 들어오는 데이터에 명명되지 않은 열이 포함된 경우 "Column1", "Column2" 패턴 등에 따라 에 배치 DataSet 됩니다. 여러 결과 집합이 각 결과 집합에 DataSet 추가되면 별도의 테이블에 배치됩니다.

매개 변수로 사용하는 DataTableFill 오버로드는 첫 번째 결과만 가져옵니다. 의 오버로드 FillDataSet 를 매개 변수로 사용하여 여러 결과를 가져옵니다.

메서드는 Fill 이름이 대/소문자 DataSet 별로만 다른 여러 DataTable 개체를 포함하는 시나리오를 지원합니다. 이러한 상황에서 Fill 는 대/소문자 구분 비교를 수행하여 해당 테이블을 찾고 정확한 일치 항목이 없으면 새 테이블을 만듭니다. 다음 C# 코드는 이 동작을 보여 줍니다.

DataSet dataset = new DataSet();  
 dataset.Tables.Add("aaa");  
 dataset.Tables.Add("AAA");  
 adapter.Fill(dataset, "aaa"); // Fills "aaa", which already exists in the DataSet.  
    adapter.Fill(dataset, "Aaa"); // Adds a new table called "Aaa".  

가 호출되고 에 DataSet 대/소문자만 다른 이름이 하나 DataTable 만 포함된 경우 Fill 업데이트 DataTable 됩니다. 이 시나리오에서 비교는 대/소문자를 구분하지 않습니다. 다음 C# 코드는 이 동작을 보여 줍니다.

DataSet dataset = new DataSet();  
 dataset.Tables.Add("aaa");  
    adapter.Fill(dataset, "AAA"); // Fills table "aaa" because only one similarly named table is in the DataSet.  

사용할 수는 Fill 메서드를 여러 번에 동일한 DataTable입니다. 기본 키가 있는 경우 들어오는 행이 이미 존재 하는 일치 하는 행과 병합 됩니다. 들어오는 행에 추가 된 기본 키가 없으면는 DataTable합니다.

SelectCommand 가 OUTER JOIN의 결과를 반환하면 DataAdapter 는 결과 PrimaryKey 에 대해 DataTable값을 설정하지 않습니다. 중복 행을 올바르게 확인할 수 있도록 기본 키를 명시적으로 정의 해야 합니다. 자세한 내용은 기본 키 정의합니다.

참고

구현의 여러 결과 반환 하는 SQL 문을 일괄 처리할 때 FillFillSchema .NET Framework 데이터 공급자는 결과 대해서만 첫 번째 스키마 정보를 검색 합니다.

상속자 참고

메서드의 Fill(DataSet) 이 오버로드는 보호되며 .NET Framework 데이터 공급자가 사용하도록 설계되었습니다.

추가 정보

적용 대상

Fill(DataTable, IDataReader)

지정된 DataTableIDataReader 이름을 사용하여 데이터 소스의 행과 일치하도록 DataTable의 행을 추가하거나 새로 고칩니다.

protected:
 virtual int Fill(System::Data::DataTable ^ dataTable, System::Data::IDataReader ^ dataReader);
protected virtual int Fill (System.Data.DataTable dataTable, System.Data.IDataReader dataReader);
override this.Fill : System.Data.DataTable * System.Data.IDataReader -> int
Protected Overridable Function Fill (dataTable As DataTable, dataReader As IDataReader) As Integer

매개 변수

dataTable
DataTable

레코드와 스키마(필요한 경우)로 채울 DataTable입니다.

dataReader
IDataReader

IDataReader의 이름입니다.

반환

DataTable에 성공적으로 추가했거나 새로 고친 행의 수를 반환합니다. 여기에는 행을 반환하지 않는 문의 영향을 받는 행은 포함되지 않습니다.

적용 대상

Fill(DataSet, String)

DataSetDataSet 이름을 사용하여 데이터 소스의 행과 일치하도록 DataTable의 행을 추가하거나 새로 고칩니다.

public:
 int Fill(System::Data::DataSet ^ dataSet, System::String ^ srcTable);
public int Fill (System.Data.DataSet dataSet, string srcTable);
override this.Fill : System.Data.DataSet * string -> int
Public Function Fill (dataSet As DataSet, srcTable As String) As Integer

매개 변수

dataSet
DataSet

레코드와 스키마(필요한 경우)로 채울 DataSet입니다.

srcTable
String

테이블 매핑에 사용할 원본 테이블의 이름입니다.

반환

DataSet에 성공적으로 추가했거나 새로 고친 행의 수를 반환합니다. 여기에는 행을 반환하지 않는 문의 영향을 받는 행은 포함되지 않습니다.

예외

소스 테이블이 잘못된 경우

예제

다음 예제에서는 파생 클래스 OleDbDataAdapter를 사용하여 를 범주 테이블의 행으로 채웁니다 DataSet . 이 예에서는 만들었다고 가정를 OleDbDataAdapterDataSet합니다.

public void GetRecords()
{
    // ...
    // create dataSet and adapter
    // ...
    adapter.Fill(dataSet, "Categories");
}
Public Sub GetRecords()
    ' ...
    ' create dataSet and adapter
    ' ...
    adapter.Fill(dataSet, "Categories")
End Sub

설명

메서드는 Fill SELECT 문을 사용하여 데이터 원본에서 데이터를 검색합니다. select 명령과 연결된 개체는 IDbConnection 유효해야 하지만 열 필요는 없습니다. 가 IDbConnection 호출되기 전에 Fill 가 닫힌 경우 데이터를 검색하기 위해 열리고 닫힙니다. 연결 하기 전에 열려 있으면 Fill 는 호출을 열린 상태로 유지 합니다.

명령이 행을 반환하지 않으면 에 테이블이 추가 DataSet되지 않으며 예외가 발생하지 않습니다.

개체가 DbDataAdapter 를 채우는 DataTable동안 중복 열이 발견되면 "columnname1", "columnname2", "columnname3" 패턴을 사용하여 후속 열의 이름을 생성합니다. 들어오는 데이터에 명명되지 않은 열이 포함된 경우 "Column1", "Column2" 패턴 등에 따라 에 배치 DataSet 됩니다.

지정된 쿼리가 여러 결과를 반환하면 각 결과 집합이 별도의 테이블에 배치됩니다. 추가 결과 집합이 지정한 테이블 이름 (예: "Table", "Table1", "Table2" 및 등)에 정수 값을 추가 하 여 이름이 지정 됩니다. 행을 반환하지 않는 쿼리에 대해 테이블이 만들어지지 않으므로 삽입 쿼리를 처리한 다음 선택 쿼리를 처리하는 경우 첫 번째 테이블이므로 select 쿼리에 대해 만든 테이블의 이름은 "Table"입니다. 앱에서 열 및 테이블 이름을 사용하는 경우 이러한 명명 패턴과 충돌이 없는지 확인합니다.

메서드는 Fill 이름이 대/소문자 DataSet 별로만 다른 여러 DataTable 개체를 포함하는 시나리오를 지원합니다. 이러한 상황에서 Fill 는 대/소문자 구분 비교를 수행하여 해당 테이블을 찾고 정확한 일치 항목이 없으면 새 테이블을 만듭니다. 다음 C# 코드는 이 동작을 보여 줍니다.

DataSet dataset = new DataSet();  
dataset.Tables.Add("aaa");  
dataset.Tables.Add("AAA");  
adapter.Fill(dataset, "aaa"); // Fills "aaa", which already exists in the DataSet.  
adapter.Fill(dataset, "Aaa"); // Adds a new table called "Aaa".  

가 호출되고 에 DataSet 대/소문자만 다른 이름이 하나 DataTable 만 포함된 경우 Fill 업데이트 DataTable 됩니다. 이 시나리오에서 비교는 대/소문자를 구분하지 않습니다. 다음 C# 코드는 이 동작을 보여 줍니다.

DataSet dataset = new DataSet();  
dataset.Tables.Add("aaa");  
adapter.Fill(dataset, "AAA"); // Fills table "aaa" because only one similarly named table is in the DataSet.  

데이터 테이블을 채우는 동안 오류 또는 예외가 발생하면 오류가 발생하기 전에 추가된 행이 데이터 테이블에 남아 있습니다. 나머지 작업은 중단됩니다.

를 채우는 데 사용되는 SELECT 문은 DataSet 일괄 처리 SQL 문과 같은 여러 결과를 반환하는 경우 다음 사항을 알고 있어야 합니다.

  • 결과 중 하나에 오류가 포함된 경우 모든 후속 결과를 건너뛰고 에 DataSet추가되지 않습니다.

후속 Fill 호출을 사용하여 의 DataSet내용을 새로 고치는 경우 다음 두 조건을 충족해야 합니다.

  1. SQL 문은 처음에 를 채우는 DataSet데 사용된 문과 일치해야 합니다.

  2. 열 정보가 있어야 합니다. 기본 키 정보가 있으면 중복 행이 조정되고 에 해당하는 DataSetDataTable 한 번만 표시됩니다. 기본 키 정보는 의 속성을 지정하거나 속성을 DataTable로 설정 MissingSchemaActionAddWithKey하여 PrimaryKey 를 통해 FillSchema설정할 수 있습니다.

SelectCommand 가 OUTER JOIN의 결과를 반환하면 DataAdapter 는 결과 PrimaryKey 에 대해 DataTable값을 설정하지 않습니다. 중복 행을 올바르게 확인할 수 있도록 기본 키를 명시적으로 정의 해야 합니다. 자세한 내용은 기본 키 정의합니다.

참고

여러 결과를 반환하는 일괄 처리 SQL 문을 처리할 때 OLE DB용 .NET Framework 데이터 공급자에 대한 구현 FillSchema 은 첫 번째 결과에 대한 스키마 정보만 검색합니다. 여러 결과에 대한 스키마 정보를 검색하려면 로 설정된 AddWithKeyMissingSchemaAction 함께 를 사용합니다Fill.

상속자 참고

재정의 하는 경우 Fill(DataSet) 파생된 클래스에서 호출 해야 기본 클래스의 Fill(DataSet) 메서드.

추가 정보

적용 대상

Fill(DataSet)

DataSet의 행을 추가하거나 새로 고칩니다.

public:
 override int Fill(System::Data::DataSet ^ dataSet);
public override int Fill (System.Data.DataSet dataSet);
override this.Fill : System.Data.DataSet -> int
Public Overrides Function Fill (dataSet As DataSet) As Integer

매개 변수

dataSet
DataSet

레코드와 스키마(필요한 경우)로 채울 DataSet입니다.

반환

DataSet에 성공적으로 추가했거나 새로 고친 행의 수를 반환합니다. 여기에는 행을 반환하지 않는 문의 영향을 받는 행은 포함되지 않습니다.

구현

설명

메서드는 Fill SELECT 문을 사용하여 데이터 원본에서 데이터를 검색합니다. select 명령과 연결된 개체는 IDbConnection 유효해야 하지만 열 필요는 없습니다. 가 IDbConnection 호출되기 전에 Fill 가 닫힌 경우 데이터를 검색하기 위해 열린 다음 닫힙니다. 연결 하기 전에 열려 있으면 Fill 는 호출을 열린 상태로 유지 합니다.

데이터 테이블을 채우는 동안 오류 또는 예외가 발생하면 오류가 발생하기 전에 추가된 행이 데이터 테이블에 남아 있습니다. 나머지 작업은 중단됩니다.

명령이 행을 반환하지 않으면 에 테이블이 추가 DataSet되지 않으며 예외가 발생하지 않습니다.

개체가 DbDataAdapter 를 채우는 DataTable동안 중복 열이 발생하면 "columnname 1", "columnname2", "columnname3" 등의 패턴을 사용하여 후속 의 이름을 생성합니다. 들어오는 데이터에 명명되지 않은 열이 포함된 경우 "Column1", "Column2" 패턴 등에 따라 에 배치 DataSet 됩니다.

지정된 쿼리가 여러 결과를 반환하면 쿼리를 반환하는 각 행에 대한 결과 집합이 별도의 테이블에 배치됩니다. 추가 결과 집합이 지정한 테이블 이름 (예: "Table", "Table1", "Table2" 및 등)에 정수 값을 추가 하 여 이름이 지정 됩니다. 행을 반환하지 않는 쿼리에 대해 테이블이 만들어지지 않으므로 삽입 쿼리를 처리한 다음 선택 쿼리를 처리하는 경우 첫 번째 테이블이므로 select 쿼리에 대해 만든 테이블의 이름은 "Table"입니다. 앱에서 열 및 테이블 이름을 사용하는 경우 이러한 명명 패턴과 충돌이 없는지 확인합니다.

를 채우는 DataSet 데 사용되는 SELECT 문이 일괄 처리 SQL 문과 같은 여러 결과를 반환하는 경우 결과 중 하나에 오류가 포함된 경우 모든 후속 결과를 건너뛰고 에 DataSet추가되지 않습니다.

후속 Fill 호출을 사용하여 의 DataSet내용을 새로 고치는 경우 다음 두 조건을 충족해야 합니다.

  1. SQL 문은 처음에 를 채우는 DataSet데 사용된 문과 일치해야 합니다.

  2. 열 정보가 있어야 합니다.

기본 키 정보가 있으면 중복 행이 조정되고 에 해당하는 DataSetDataTable 한 번만 표시됩니다. 기본 키 정보는 의 속성을 지정하거나 속성을 DataTable로 설정 MissingSchemaActionAddWithKey하여 PrimaryKey 를 통해 FillSchema설정할 수 있습니다.

SelectCommand 가 OUTER JOIN의 결과를 반환하면 DataAdapter 는 결과 PrimaryKey 에 대해 DataTable값을 설정하지 않습니다. 중복 행을 올바르게 확인할 수 있도록 기본 키를 명시적으로 정의 해야 합니다. 자세한 내용은 기본 키 정의합니다.

참고

여러 결과를 반환하는 일괄 처리 SQL 문을 처리할 때 OLE DB용 .NET Framework 데이터 공급자에 대한 구현 FillSchema 은 첫 번째 결과에 대한 스키마 정보만 검색합니다. 여러 결과에 대한 스키마 정보를 검색하려면 로 설정된 AddWithKeyMissingSchemaAction 함께 를 사용합니다Fill.

추가 정보

적용 대상

Fill(DataTable, IDbCommand, CommandBehavior)

지정된 DataTable, DataTableIDbCommand를 사용하여 데이터 소스의 행과 일치하도록 CommandBehavior의 행을 추가하거나 새로 고칩니다.

protected:
 virtual int Fill(System::Data::DataTable ^ dataTable, System::Data::IDbCommand ^ command, System::Data::CommandBehavior behavior);
protected virtual int Fill (System.Data.DataTable dataTable, System.Data.IDbCommand command, System.Data.CommandBehavior behavior);
override this.Fill : System.Data.DataTable * System.Data.IDbCommand * System.Data.CommandBehavior -> int
Protected Overridable Function Fill (dataTable As DataTable, command As IDbCommand, behavior As CommandBehavior) As Integer

매개 변수

dataTable
DataTable

레코드와 스키마(필요한 경우)로 채울 DataTable입니다.

command
IDbCommand

데이터 소스에서 행을 검색하는 데 사용할 SQL SELECT 문입니다.

behavior
CommandBehavior

CommandBehavior 값 중 하나입니다.

반환

DataTable에 성공적으로 추가했거나 새로 고친 행의 수를 반환합니다. 여기에는 행을 반환하지 않는 문의 영향을 받는 행은 포함되지 않습니다.

설명

메서드는 Fill 연결된 SelectCommand 속성에 지정된 SELECT 문을 사용하여 데이터 원본에서 행을 검색합니다. SELECT 문과 사용 하 여 연결 된 연결 개체는 유효 해야 합니다. 하지만 열려 있이 필요가 없습니다. 가 호출되기 전에 Fill 연결이 닫힌 경우 데이터를 검색하기 위해 열린 다음 닫힙니다. 연결 하기 전에 열려 있으면 Fill 는 호출을 열린 상태로 유지 합니다.

그런 다음, 연산은 Fill 의 지정된 대상 DataTable 개체에 행을 DataSet추가하여 개체가 아직 없는 경우 개체를 DataTable 만듭니다. 개체 FillDataTable 만들 때 작업은 일반적으로 열 이름 메타데이터만 만듭니다. 그러나 경우 합니다 MissingSchemaAction 속성이 AddWithKey, 적절 한 기본 키와 제약 조건도 만들어집니다.

개체가 DbDataAdapter 를 채우는 DataTable동안 중복 열이 발생하면 "columnname 1", "columnname2", "columnname3" 등의 패턴을 사용하여 후속 의 이름을 생성합니다. 들어오는 데이터에 명명되지 않은 열이 포함된 경우 "Column1", "Column2" 패턴 등에 따라 에 배치 DataSet 됩니다.

매개 변수로 사용하는 DataTableFill 오버로드는 첫 번째 결과만 가져옵니다. 의 오버로드 FillDataSet 를 매개 변수로 사용하여 여러 결과를 가져옵니다.

사용할 수는 Fill 메서드를 여러 번에 동일한 DataTable입니다. 기본 키가 있는 경우 들어오는 행이 이미 존재 하는 일치 하는 행과 병합 됩니다. 들어오는 행에 추가 된 기본 키가 없으면는 DataTable합니다.

SelectCommand 가 OUTER JOIN의 결과를 반환하면 DataAdapter 는 결과 PrimaryKey 에 대해 DataTable값을 설정하지 않습니다. 중복 행을 올바르게 확인할 수 있도록 기본 키를 명시적으로 정의 해야 합니다. 자세한 내용은 기본 키 정의합니다.

참고

여러 결과를 반환하는 일괄 처리 SQL 문을 처리할 때 OLE DB용 .NET Framework 데이터 공급자에 대한 구현 FillSchema 은 첫 번째 결과에 대한 스키마 정보만 검색합니다. 여러 결과에 대한 스키마 정보를 검색하려면 로 설정된 AddWithKeyMissingSchemaAction 함께 를 사용합니다Fill.

상속자 참고

메서드의 Fill(DataSet) 이 오버로드는 보호되며 .NET Framework 데이터 공급자가 사용하도록 설계되었습니다.

추가 정보

적용 대상