DbDataAdapter.Fill DbDataAdapter.Fill DbDataAdapter.Fill DbDataAdapter.Fill Method

정의

DataSet 또는 DataTable을 채웁니다.Fills a DataSet or a DataTable.

오버로드

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

DataSet과 소스 테이블 이름, 명령 문자열과 명령 동작을 사용하여 지정된 범위에서 데이터 소스의 행과 일치하도록 DataSet의 행을 추가하거나 새로 고칩니다.Adds or refreshes rows in a specified range in the DataSet to match those in the data source using the DataSet and source table names, command string, and command behavior.

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

DataSetDataSet 이름을 사용하여 지정된 범위에서 데이터 소스의 행과 일치하도록 DataTable의 행을 추가하거나 새로 고칩니다.Adds or refreshes rows in a specified range in the DataSet to match those in the data source using the DataSet and DataTable names.

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

DataSet, DataTableIDataReader 이름을 사용하여 지정된 범위에서 데이터 소스의 행과 일치하도록 DataSet의 행을 추가하거나 새로 고칩니다.Adds or refreshes rows in a specified range in the DataSet to match those in the data source using the DataSet, DataTable, and IDataReader names.

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

DataSetDataSet 이름을 사용하여 지정된 범위에서 데이터 소스의 행과 일치하도록 DataTable의 행을 추가하거나 새로 고칩니다.Adds or refreshes rows in a specified range in the DataSet to match those in the data source using the DataSet and DataTable names.

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

지정된 레코드에서 시작하여 지정된 최대 레코드 수까지 검색하면서 데이터 소스의 행과 일치하도록 DataTable의 행을 추가하거나 새로 고칩니다.Adds or refreshes rows in a DataTable to match those in the data source starting at the specified record and retrieving up to the specified maximum number of records.

Fill(DataTable) Fill(DataTable) Fill(DataTable)

DataSet 이름을 사용하여 지정된 범위에서 데이터 소스의 행과 일치하도록 DataTable의 행을 추가하거나 새로 고칩니다.Adds or refreshes rows in a specified range in the DataSet to match those in the data source using the DataTable name.

Fill(DataTable, IDataReader) Fill(DataTable, IDataReader) Fill(DataTable, IDataReader)

지정된 DataTableIDataReader 이름을 사용하여 데이터 소스의 행과 일치하도록 DataTable의 행을 추가하거나 새로 고칩니다.Adds or refreshes rows in a DataTable to match those in the data source using the specified DataTable and IDataReader names.

Fill(DataSet, String) Fill(DataSet, String) Fill(DataSet, String)

DataSetDataSet 이름을 사용하여 데이터 소스의 행과 일치하도록 DataTable의 행을 추가하거나 새로 고칩니다.Adds or refreshes rows in the DataSet to match those in the data source using the DataSet and DataTable names.

Fill(DataSet) Fill(DataSet) Fill(DataSet)

DataSet의 행을 추가하거나 새로 고칩니다.Adds or refreshes rows in the DataSet.

Fill(DataTable, IDbCommand, CommandBehavior) Fill(DataTable, IDbCommand, CommandBehavior) Fill(DataTable, IDbCommand, CommandBehavior)

지정된 DataTable, DataTableIDbCommand를 사용하여 데이터 소스의 행과 일치하도록 CommandBehavior의 행을 추가하거나 새로 고칩니다.Adds or refreshes rows in a DataTable to match those in the data source using the specified DataTable, IDbCommand and CommandBehavior.

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

DataSet과 소스 테이블 이름, 명령 문자열과 명령 동작을 사용하여 지정된 범위에서 데이터 소스의 행과 일치하도록 DataSet의 행을 추가하거나 새로 고칩니다.Adds or refreshes rows in a specified range in the DataSet to match those in the data source using the DataSet and source table names, command string, and command behavior.

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

매개 변수

dataSet
DataSet DataSet DataSet DataSet

레코드와 스키마(필요한 경우)로 채울 DataSet입니다.A DataSet to fill with records and, if necessary, schema.

startRecord
Int32 Int32 Int32 Int32

0부터 시작되는 시작 레코드 번호입니다.The zero-based record number to start with.

maxRecords
Int32 Int32 Int32 Int32

검색할 수 있는 최대 레코드 수입니다.The maximum number of records to retrieve.

srcTable
String String String String

테이블 매핑에 사용할 소스 테이블의 이름입니다.The name of the source table to use for table mapping.

command
IDbCommand IDbCommand IDbCommand IDbCommand

데이터 소스에서 행을 검색하는 데 사용할 SQL SELECT 문입니다.The SQL SELECT statement used to retrieve rows from the data source.

반환

DataSet에 성공적으로 추가했거나 새로 고친 행의 수를 반환합니다.The number of rows successfully added to or refreshed in the DataSet. 여기에는 행을 반환하지 않는 문의 영향을 받는 행은 포함되지 않습니다.This does not include rows affected by statements that do not return rows.

예외

소스 테이블이 잘못된 경우The source table is invalid.

startRecord 매개 변수가 0보다 작은 경우The startRecord parameter is less than 0.

또는-or- maxRecords 매개 변수가 0보다 작은 경우The maxRecords parameter is less than 0.

설명

합니다 Fill 연결 된 지정 된 SELECT 문을 사용 하 여 데이터 원본에서 행을 검색 하는 메서드 SelectCommand 속성입니다.The Fill method retrieves rows from the data source using the SELECT statement specified by an associated SelectCommand property. SELECT 문과 사용 하 여 연결 된 연결 개체는 유효 해야 합니다. 하지만 열려 있이 필요가 없습니다.The connection object associated with the SELECT statement must be valid, but it does not need to be open. 전에 연결이 닫히면 Fill 는 데이터를 검색 하려면을 열고 다음 닫는 하는를 호출 합니다.If the connection is closed before Fill is called, it is opened to retrieve data, then closed. 연결 하기 전에 열려 있으면 Fill 는 호출을 열린 상태로 유지 합니다.If the connection is open before Fill is called, it remains open.

Fill 작업이 대상에 행 추가 DataTable 개체를 DataSet만들기는 DataTable 경우 이미 없는 개체입니다.The Fill operation then adds the rows to destination DataTable objects in the DataSet, creating the DataTable objects if they do not already exist. 만들면 DataTable 개체는 Fill 작업은 일반적으로 열 이름 메타 데이터만 만듭니다.When creating DataTable objects, the Fill operation normally creates only column name metadata. 그러나 경우 합니다 MissingSchemaAction 속성이 AddWithKey, 적절 한 기본 키와 제약 조건도 만들어집니다.However, if the MissingSchemaAction property is set to AddWithKey, appropriate primary keys and constraints are also created.

경우는 DbDataAdapter 에서 중복 열을 채우는 동안는 DataTable, 패턴을 사용 하 여 후속 열에 대 한 이름을 생성 "columnname1", "columnname2", "columnname3", 및 등입니다.If the DbDataAdapter encounters duplicate columns while populating a DataTable, it generates names for the subsequent columns, using the pattern "columnname1", "columnname2", "columnname3", and so on. 놓 이기는 들어오는 데이터에 명명 되지 않은 열을 포함 하는 경우는 DataSet "column1", "Column2" 등에 따라 합니다.If the incoming data contains unnamed columns, they are placed in the DataSet according to the pattern "Column1", "Column2", and so on. 여러 결과 집합에 추가 될 때를 DataSet 각 결과 집합을 별도 테이블에 배치 됩니다.When multiple result sets are added to the DataSet each result set is placed in a separate table. 추가 결과 집합이 지정한 테이블 이름 (예: "Table", "Table1", "Table2" 및 등)에 정수 값을 추가 하 여 이름이 지정 됩니다.Additional result sets are named by appending integral values to the specified table name (for example, "Table", "Table1", "Table2", and so on). 열 및 테이블 이름을 사용 하 여 애플리케이션은 이러한 명명 패턴을 사용 하 여 충돌 하지 않도록 확인 해야 합니다.Applications using column and table names should ensure that conflicts with these naming patterns does not occur.

Fill 메서드 시나리오를 지원 합니다. 여기서는 DataSet 여러 개 포함 된 DataTable 개체 이름이 대/소문자만 다른 합니다.The Fill method supports scenarios where the DataSet contains multiple DataTable objects whose names differ only by case. 이러한 상황에서는 Fill 해당 테이블을 찾을 대/소문자 구분 비교를 수행 하 고 정확히 일치 하는 경우 새 테이블을 만듭니다.In such situations, Fill performs a case-sensitive comparison to find the corresponding table, and creates a new table if no exact match exists. 다음 C# 코드는이 동작을 보여 줍니다.The following C# code illustrates this behavior.

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".  

경우 Fill 라고 하며 DataSet 하나만 포함 되어 DataTable 이름이 다른 경우에 의해서만 DataTable 업데이트 됩니다.If Fill is called and the DataSet contains only one DataTable whose name differs only by case, that DataTable is updated. 이 시나리오에서는 비교는 대/소문자 구분.In this scenario, the comparison is case insensitive. 다음 C# 코드는이 동작을 보여 줍니다.The following C# code illustrates this behavior.

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입니다.You can use the Fill method multiple times on the same DataTable. 기본 키가 있는 경우 들어오는 행이 이미 존재 하는 일치 하는 행과 병합 됩니다.If a primary key exists, incoming rows are merged with matching rows that already exist. 들어오는 행에 추가 된 기본 키가 없으면는 DataTable합니다.If no primary key exists, incoming rows are appended to the DataTable.

SelectCommand 가 OUTER JOIN의 결과를 반환하면 DataAdapter 는 결과 PrimaryKey 에 대해 DataTable값을 설정하지 않습니다.If the SelectCommand returns the results of an OUTER JOIN, the DataAdapter does not set a PrimaryKey value for the resulting DataTable. 중복 행을 올바르게 확인할 수 있도록 기본 키를 명시적으로 정의 해야 합니다.You must explicitly define the primary key to ensure that duplicate rows are resolved correctly. 자세한 내용은 기본 키 정의합니다.For more information, see Defining Primary Keys.

참고

구현의 여러 결과 반환 하는 SQL 문을 일괄 처리할 때 FillFillSchema .NET Framework 데이터 공급자는 결과 대해서만 첫 번째 스키마 정보를 검색 합니다.When handling batch SQL statements that return multiple results, the implementation of Fill and FillSchema for a .NET Framework data provider retrieves schema information for only the first result.

상속자 참고

이 오버 로드는 Fill(DataSet) 메서드는 보호 되므로.NET Framework 데이터 공급자가 사용 하도록 설계 되었습니다.This overload of the Fill(DataSet) method is protected and is designed for use by a .NET Framework data provider.

추가 정보

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

DataSetDataSet 이름을 사용하여 지정된 범위에서 데이터 소스의 행과 일치하도록 DataTable의 행을 추가하거나 새로 고칩니다.Adds or refreshes rows in a specified range in the DataSet to match those in the data source using the DataSet and DataTable names.

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 개체입니다.The DataTable objects to fill from the data source.

startRecord
Int32 Int32 Int32 Int32

0부터 시작되는 시작 레코드 번호입니다.The zero-based record number to start with.

maxRecords
Int32 Int32 Int32 Int32

검색할 수 있는 최대 레코드 수입니다.The maximum number of records to retrieve.

command
IDbCommand IDbCommand IDbCommand IDbCommand

IDbCommand 개체를 채우기 위해 실행되는 DataTable입니다.The IDbCommand executed to fill the DataTable objects.

반환

데이터 테이블에서 추가되거나 새로 고쳐진 행의 수입니다.The number of rows added to or refreshed in the data tables.

예외

소스 테이블이 잘못된 경우The source table is invalid.

또는-or-

연결이 잘못된 경우The connection is invalid.

연결을 찾을 수 없는 경우The connection could not be found.

startRecord 매개 변수가 0보다 작은 경우The startRecord parameter is less than 0.

또는-or- maxRecords 매개 변수가 0보다 작은 경우The maxRecords parameter is less than 0.

설명

maxRecords 값이 0 시작 레코드 뒤에서 발견 되는 모든 레코드를 가져옵니다.A maxRecords value of 0 gets all records found after the start record. 경우 maxRecords 보다 크면 나머지 행 수가 없으면 오류가 발생 하 고 나머지 행이 반환 됩니다.If maxRecords is greater than the number of remaining rows, only the remaining rows are returned and no error is issued.

Fill 메서드는 SELECT 문을 사용 하 여 데이터 원본에서 데이터를 검색 합니다.The Fill method retrieves the data from the data source using a SELECT statement. IDbConnection SELECT 문과 사용 하 여 연결 된 개체는 유효 해야 합니다. 하지만 열려 있이 필요는 없습니다.The IDbConnection object associated with the SELECT statement must be valid, but it does not need to be open. 경우는 IDbConnection 닫은 후 Fill 는 데이터를 검색 하려면을 열고 다음 닫는 하는를 호출 합니다.If the IDbConnection is closed before Fill is called, it is opened to retrieve data, then closed. 연결 하기 전에 열려 있으면 Fill 는 호출을 열린 상태로 유지 합니다.If the connection is open before Fill is called, it remains open.

명령에서 모든 행을 반환 하지 않는, 테이블에 추가 됩니다는 DataSet, 예외가 발생 합니다.If a command does not return any rows, no tables are added to the DataSet, but no exception is raised.

경우는 DbDataAdapter 개체를 채우는 동안 중복 된 열을 발생을 DataTable, 패턴을 사용 하 여 후속 열에 대 한 이름을 생성 "columnname1", "columnname2 ","columnname3 "등입니다.If the DbDataAdapter object encounters duplicate columns while populating a DataTable, it will generate names for the subsequent columns, using the pattern "columnname1", "columnname2", "columnname3", and so on. 놓 이기는 들어오는 데이터에 명명 되지 않은 열을 포함 하는 경우는 DataSet "column1", "Column2" 등에 따라 합니다.If the incoming data contains unnamed columns, they are placed in the DataSet according to the pattern "Column1", "Column2", and so on.

지정 된 쿼리가 여러 결과 반환 하는 경우 각 결과 집합을 별도 테이블에 배치 됩니다.When the query specified returns multiple results, each result set is placed in a separate table. 추가 결과 집합이 지정한 테이블 이름 (예: "Table", "Table1", "Table2" 및 등)에 정수 값을 추가 하 여 이름이 지정 됩니다.Additional result sets are named by appending integral values to the specified table name (for example, "Table", "Table1", "Table2", and so on). 테이블이 만들어지면 행을 반환 하지 않는 쿼리에 대 한 select 쿼리 뒤에 삽입 쿼리를 처리 하는 경우 이후 select 쿼리에 대해 생성 된 테이블은 수 "Table" 이라는, 생성 된 첫 번째 테이블 이기 때문에.Since no table is created for a query that does not return rows, if you were to process an insert query followed by a select query, the table created for the select query would be named "Table", because it is the first table created. 열 및 테이블 이름을 사용 하 여 애플리케이션은 이러한 명명 패턴을 사용 하 여 충돌 하지 않도록 확인 해야 합니다.Applications using column and table names should ensure that conflicts with these naming patterns does not occur.

Fill 메서드 시나리오를 지원 합니다. 여기서는 DataSet 여러 개 포함 된 DataTable 개체 이름이 대/소문자만 다른 합니다.The Fill method supports scenarios where the DataSet contains multiple DataTable objects whose names differ only by case. 이러한 상황에서는 Fill 해당 테이블을 찾을 대/소문자 구분 비교를 수행 하 고 정확히 일치 하는 경우 새 테이블을 만듭니다.In such situations, Fill performs a case-sensitive comparison to find the corresponding table, and creates a new table if no exact match exists. 다음 C# 코드는이 동작을 보여 줍니다.The following C# code illustrates this behavior.

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".  

경우 Fill 라고 하며 DataSet 하나만 포함 되어 DataTable 이름이 다른 경우에 의해서만 DataTable 업데이트 됩니다.If Fill is called and the DataSet contains only one DataTable whose name differs only by case, that DataTable is updated. 이 시나리오에서는 비교는 대/소문자 구분.In this scenario, the comparison is case insensitive. 다음 C# 코드는이 동작을 보여 줍니다.The following C# code illustrates this behavior.

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.  

오류 또는 예외가 발생 하는 경우 데이터 테이블을 채우는 동안 오류가 발생 하기 전에 추가 행은 데이터 테이블에 남아 있습니다.If an error or an exception is encountered while populating the data tables, rows added prior to the occurrence of the error remain in the data tables. 작업의 나머지 부분을 중단 합니다.The remainder of the operation is aborted.

채우는 SELECT 문을 사용 하는 경우는 DataTable 개체 일괄 처리 SQL 문 다음에 유의 같은 여러 결과 반환 합니다.When the SELECT statement used to populate the DataTable objects returns multiple results, such as a batch SQL statement, be aware of the following:

  • SQL 문 일괄 처리에서 여러 결과 처리할 때 maxRecords 첫 번째 결과에 적용 됩니다.When processing multiple results from a batch SQL statement, maxRecords only applies to the first result. 장으로 구성 된 결과 (.NET Framework Data Provider for OLE DB만)이 포함 된 행에도 마찬가지입니다.The same is true for rows containing chaptered results (.NET Framework Data Provider for OLE DB only). 최상위 결과 따라 제한 됩니다 maxRecords, 하지만 모든 자식 행이 추가 됩니다.The top level result is limited by maxRecords, but all child rows are added.

  • 결과 중 하나에 오류가 포함 되어, 모든 후속 결과 건너뜁니다.If one of the results contains an error, all subsequent results are skipped.

참고

합니다 DataSet 나타난 레코드 개수 보다 많은 포함 되지 것입니다 maxRecords합니다.The DataSet will not contain more than the number of records indicated by maxRecords. 그러나 쿼리에 의해 생성 된 전체 결과 집합은 여전히 서버에서 반환 됩니다.However, the entire resultset generated by the query is still returned from the server.

상속자 참고

재정의 하는 경우 Fill(DataSet) 파생된 클래스에서 호출 해야 기본 클래스의 Fill(DataSet) 메서드.When overriding Fill(DataSet) in a derived class, be sure to call the base class's Fill(DataSet) method.

추가 정보

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

DataSet, DataTableIDataReader 이름을 사용하여 지정된 범위에서 데이터 소스의 행과 일치하도록 DataSet의 행을 추가하거나 새로 고칩니다.Adds or refreshes rows in a specified range in the DataSet to match those in the data source using the DataSet, DataTable, and IDataReader names.

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

매개 변수

dataSet
DataSet DataSet DataSet DataSet

레코드와 스키마(필요한 경우)로 채울 DataSet입니다.A DataSet to fill with records and, if necessary, schema.

srcTable
String String String String

테이블 매핑에 사용할 DataTable의 이름입니다.The name of the DataTable to use for table mapping.

dataReader
IDataReader IDataReader IDataReader IDataReader

IDataReader의 이름입니다.The name of the IDataReader.

startRecord
Int32 Int32 Int32 Int32

0부터 시작되는 시작 레코드 번호입니다.The zero-based record number to start with.

maxRecords
Int32 Int32 Int32 Int32

검색할 수 있는 최대 레코드 수입니다.The maximum number of records to retrieve.

반환

DataSet에 성공적으로 추가했거나 새로 고친 행의 수를 반환합니다.The number of rows successfully added to or refreshed in the DataSet. 여기에는 행을 반환하지 않는 문의 영향을 받는 행은 포함되지 않습니다.This does not include rows affected by statements that do not return rows.

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

DataSetDataSet 이름을 사용하여 지정된 범위에서 데이터 소스의 행과 일치하도록 DataTable의 행을 추가하거나 새로 고칩니다.Adds or refreshes rows in a specified range in the DataSet to match those in the data source using the DataSet and DataTable names.

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

매개 변수

dataSet
DataSet DataSet DataSet DataSet

레코드와 스키마(필요한 경우)로 채울 DataSet입니다.A DataSet to fill with records and, if necessary, schema.

startRecord
Int32 Int32 Int32 Int32

0부터 시작되는 시작 레코드 번호입니다.The zero-based record number to start with.

maxRecords
Int32 Int32 Int32 Int32

검색할 수 있는 최대 레코드 수입니다.The maximum number of records to retrieve.

srcTable
String String String String

테이블 매핑에 사용할 소스 테이블의 이름입니다.The name of the source table to use for table mapping.

반환

DataSet에 성공적으로 추가했거나 새로 고친 행의 수를 반환합니다.The number of rows successfully added to or refreshed in the DataSet. 여기에는 행을 반환하지 않는 문의 영향을 받는 행은 포함되지 않습니다.This does not include rows affected by statements that do not return rows.

예외

소스 테이블이 잘못된 경우The source table is invalid.

또는-or-

연결이 잘못된 경우The connection is invalid.

연결을 찾을 수 없는 경우The connection could not be found.

startRecord 매개 변수가 0보다 작은 경우The startRecord parameter is less than 0.

또는-or- maxRecords 매개 변수가 0보다 작은 경우The maxRecords parameter is less than 0.

예제

다음 예제에서는 파생된 클래스 OleDbDataAdapter를 입력 하는 DataSet 에서 행을 10부터 15 개의 행을 사용 하 여는 범주 테이블입니다.The following example uses the derived class, OleDbDataAdapter, to fill a DataSet with 15 rows, beginning at row 10, from the Categories table. 이 예에서는 만들었다고 가정를 OleDbDataAdapterDataSet합니다.This example assumes that you have created an OleDbDataAdapter and a DataSet.

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 시작 레코드 뒤에서 발견 되는 모든 레코드를 가져옵니다.A maxRecords value of 0 gets all records found after the start record. 경우 maxRecords 보다 크면 나머지 행 수가 나머지 행이 반환 하 고 오류가 발생 합니다.If maxRecords is greater than the number of remaining rows, only the remaining rows are returned, and no error is issued.

해당 select 명령이 여러 결과 반환 하는 문의 경우 Fill 에 적용 됩니다 maxRecords 첫 번째 결과입니다.If the corresponding select command is a statement returning multiple results, Fill only applies maxRecords to the first result.

Fill 메서드는 SELECT 문을 사용 하 여 데이터 원본에서 데이터를 검색 합니다.The Fill method retrieves the data from the data source using a SELECT statement. IDbConnection SELECT 문과 사용 하 여 연결 된 개체는 유효 해야 합니다. 하지만 열려 있이 필요는 없습니다.The IDbConnection object associated with the SELECT statement must be valid, but it does not need to be open. 경우는 IDbConnection 닫은 후 Fill 은 호출,이 열어 데이터를 검색 하 고 닫으면 합니다.If the IDbConnection is closed before Fill is called, it is opened to retrieve data and then closed. 연결 하기 전에 열려 있으면 Fill 는 호출을 열린 상태로 유지 합니다.If the connection is open before Fill is called, it remains open.

명령에서 모든 행을 반환 하지 않는, 테이블에 추가 됩니다는 DataSet, 예외가 발생 합니다.If a command does not return any rows, no tables are added to the DataSet, but no exception is raised.

경우는 DbDataAdapter 개체를 채우는 동안 중복 된 열을 발생을 DataTable, 패턴을 사용 하 여 후속 열에 대 한 이름을 생성 "columnname1", "columnname2 ","columnname3 "등입니다.If the DbDataAdapter object encounters duplicate columns while populating a DataTable, it will generate names for the subsequent columns, using the pattern "columnname1", "columnname2", "columnname3", and so on. 놓 이기는 들어오는 데이터에 명명 되지 않은 열을 포함 하는 경우는 DataSet "column1", "Column2" 등에 따라 합니다.If the incoming data contains unnamed columns, they are placed in the DataSet according to the pattern "Column1", "Column2", and so on.

지정 된 쿼리가 여러 결과 반환 하는 경우 각 결과 집합을 별도 테이블에 배치 됩니다.When the query specified returns multiple results, each result set is placed in a separate table. 추가 결과 집합이 지정한 테이블 이름 (예: "Table", "Table1", "Table2" 및 등)에 정수 값을 추가 하 여 이름이 지정 됩니다.Additional result sets are named by appending integral values to the specified table name (for example, "Table", "Table1", "Table2", and so on). 만들어지므로 테이블 행을 반환 하지 않는 쿼리에 대 한 select 쿼리 뒤에 삽입 쿼리를 처리 하는 경우, 생성 된 첫 번째 테이블 이기 때문에 선택 쿼리에 대해 생성 된 테이블이 "Table"을 이라고 합니다.Because no table is created for a query that does not return rows, if you process an insert query followed by a select query, the table created for the select query is named "Table", because it is the first table created. 열 및 테이블 이름을 사용 하 여 애플리케이션은 이러한 명명 패턴을 사용 하 여 충돌 하지 않도록 확인 해야 합니다.Applications using column and table names should ensure that conflicts with these naming patterns does not occur.

Fill 메서드 시나리오를 지원 합니다. 여기서는 DataSet 여러 개 포함 된 DataTable 개체 이름이 대/소문자만 다른 합니다.The Fill method supports scenarios where the DataSet contains multiple DataTable objects whose names differ only by case. 이러한 상황에서는 Fill 해당 테이블을 찾을 대/소문자 구분 비교를 수행 하 고 정확히 일치 하는 경우 새 테이블을 만듭니다.In such situations, Fill performs a case-sensitive comparison to find the corresponding table, and creates a new table if no exact match exists. 다음 C# 코드는이 동작을 보여 줍니다.The following C# code illustrates this behavior.

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".  

경우 Fill 라고 하며 DataSet 하나만 포함 되어 DataTable 이름이 다른 경우에 의해서만 DataTable 업데이트 됩니다.If Fill is called and the DataSet contains only one DataTable whose name differs only by case, that DataTable is updated. 이 시나리오에서는 비교는 대/소문자 구분.In this scenario, the comparison is case insensitive. 다음 C# 코드는이 동작을 보여 줍니다.The following C# code illustrates this behavior.

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.  

오류 또는 예외가 발생 하는 경우 데이터 테이블을 채우는 동안 오류가 발생 하기 전에 추가 행은 데이터 테이블에 남아 있습니다.If an error or an exception is encountered while populating the data tables, rows added prior to the occurrence of the error remain in the data tables. 작업의 나머지 부분을 중단 합니다.The remainder of the operation is aborted.

채우는 SELECT 문을 사용 하는 경우는 DataSet 일괄 처리 SQL 문과 같은 여러 결과 반환 합니다. 다음에 유의 합니다.When the SELECT statement used to populate the DataSet returns multiple results, such as batch SQL statements, be aware of the following:

  • SQL 문 일괄 처리에서 여러 결과 처리할 때 maxRecords 첫 번째 결과에 적용 됩니다.When processing multiple results from a batch SQL statement, maxRecords only applies to the first result. 장으로 구성 된 결과 (.NET Framework Data Provider for OLE DB만)이 포함 된 행에도 마찬가지입니다.The same is true for rows containing chaptered results (.NET Framework Data Provider for OLE DB only). 최상위 결과 따라 제한 됩니다 maxRecords, 하지만 모든 자식 행이 추가 됩니다.The top level result is limited by maxRecords, but all child rows are added.

  • 모든 후속 결과 생략 되 고 추가할 없습니다 오류가 있으면 결과 중 하나는 DataSet합니다.If one of the results contains an error, all subsequent results are skipped and not added to the DataSet.

후속을 사용 하는 경우 Fill 내용 새로 고침에 대 한 호출을 DataSet, 두 조건이 충족 되어야 합니다.When using subsequent Fill calls to refresh the contents of the DataSet, two conditions must be met:

  1. SQL 문을 처음 채우는 데 사용 되는 일치 해야 합니다 DataSet합니다.The SQL statement should match the one initially used to populate the DataSet.

  2. 합니다 열 정보 표시 되어야 합니다.The Key column information must be present.

기본 키 정보가 있는 경우 중복 행 조정 되며 한 번만 표시에 DataTable 에 해당 하는 DataSet합니다.If primary key information is present, any duplicate rows will be reconciled and only appear once in the DataTable that corresponds to the DataSet. 통해 기본 키 정보를 설정할 수 있습니다 FillSchema, 지정 하 여는 PrimaryKey 의 속성을 DataTable, 하거나 설정 하 여를 MissingSchemaAction 속성을 AddWithKey.Primary key information may be set either through FillSchema, by specifying the PrimaryKey property of the DataTable, or by setting the MissingSchemaAction property to AddWithKey.

SelectCommand 가 OUTER JOIN의 결과를 반환하면 DataAdapter 는 결과 PrimaryKey 에 대해 DataTable값을 설정하지 않습니다.If the SelectCommand returns the results of an OUTER JOIN, the DataAdapter does not set a PrimaryKey value for the resulting DataTable. 중복 행을 올바르게 확인할 수 있도록 기본 키를 명시적으로 정의 해야 합니다.You must explicitly define the primary key to ensure that duplicate rows are resolved correctly. 자세한 내용은 기본 키 정의합니다.For more information, see Defining Primary Keys.

참고

구현의 여러 결과 반환 하는 SQL 문을 일괄 처리할 때 FillSchema 첫 번째 결과 대 한 스키마 정보를 검색 하는.NET Framework Data Provider for OLE DB에 대 한 합니다.When handling batch SQL statements that return multiple results, the implementation of FillSchema for the .NET Framework Data Provider for OLE DB retrieves schema information for only the first result. 사용 하 여 여러 결과 대 한 스키마 정보를 검색할 Fill 사용 하 여는 MissingSchemaActionAddWithKey합니다.To retrieve schema information for multiple results, use Fill with the MissingSchemaAction set to AddWithKey.

참고

합니다 DataSet 나타난 레코드 개수 보다 많은 포함 되지 것입니다 maxRecords합니다.The DataSet will not contain more than the number of records indicated by maxRecords. 하지만, 쿼리에서 생성 한 전체 결과 집합은 여전히 서버에서 반환 됩니다.However, the entire result set generated by the query is still returned from the server.

상속자 참고

재정의 하는 경우 Fill(DataSet) 파생된 클래스에서 호출 해야 기본 클래스의 Fill(DataSet) 메서드.When overriding Fill(DataSet) in a derived class, be sure to call the base class's Fill(DataSet) method.

추가 정보

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

지정된 레코드에서 시작하여 지정된 최대 레코드 수까지 검색하면서 데이터 소스의 행과 일치하도록 DataTable의 행을 추가하거나 새로 고칩니다.Adds or refreshes rows in a DataTable to match those in the data source starting at the specified record and retrieving up to the specified maximum number of records.

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 Int32 Int32 Int32

0부터 시작되는 시작 레코드 번호입니다.The zero-based record number to start with.

maxRecords
Int32 Int32 Int32 Int32

검색할 수 있는 최대 레코드 수입니다.The maximum number of records to retrieve.

dataTables
DataTable[]

데이터 소스에서 채울 DataTable 개체입니다.The DataTable objects to fill from the data source.

반환

DataTable에 성공적으로 추가했거나 새로 고친 행의 수를 반환합니다.The number of rows successfully added to or refreshed in the DataTable. 행을 반환하지 않는 문의 영향을 받는 행은 이 값에 포함되지 않습니다.This value does not include rows affected by statements that do not return rows.

설명

합니다 Fill 연결 된 지정 된 SELECT 문을 사용 하 여 데이터 원본에서 행을 검색 하는 메서드 SelectCommand 속성입니다.The Fill method retrieves rows from the data source using the SELECT statement specified by an associated SelectCommand property. SELECT 문과 사용 하 여 연결 된 연결 개체는 유효 해야 합니다. 하지만 열려 있이 필요가 없습니다.The connection object associated with the SELECT statement must be valid, but it does not need to be open. 연결 하기 전에 닫히면 Fill 는 데이터를 검색 하는 것이 열려 있고 닫혀 다음 호출 합니다.If the connection is closed before Fill is called, it is opened to retrieve data, and then it is closed. 연결 하기 전에 열려 있으면 Fill 는 호출을 열린 상태로 유지 합니다.If the connection is open before Fill is called, it remains open.

Fill 작업이 대상에 행 추가 DataTable 개체를 DataSet만들기는 DataTable 경우 이미 없는 개체입니다.The Fill operation then adds the rows to destination DataTable objects in the DataSet, creating the DataTable objects if they do not already exist. 만들면 DataTable 개체는 Fill 작업은 일반적으로 열 이름 메타 데이터만 만듭니다.When creating DataTable objects, the Fill operation normally creates only column name metadata. 그러나 경우 합니다 MissingSchemaAction 속성이 AddWithKey, 적절 한 기본 키와 제약 조건도 만들어집니다.However, if the MissingSchemaAction property is set to AddWithKey, appropriate primary keys and constraints are also created.

SelectCommand 가 OUTER JOIN의 결과를 반환하면 DataAdapter 는 결과 PrimaryKey 에 대해 DataTable값을 설정하지 않습니다.If the SelectCommand returns the results of an OUTER JOIN, the DataAdapter does not set a PrimaryKey value for the resulting DataTable. 중복 행을 올바르게 확인할 수 있도록 기본 키를 명시적으로 정의 해야 합니다.You must explicitly define the primary key to ensure that duplicate rows are resolved correctly. 자세한 내용은 기본 키 정의합니다.For more information, see Defining Primary Keys.

데이터 어댑터를 채우는 동안 중복 된 열을 발견 하는 경우는 DataTable, 패턴 "columnname1", "columnname2", "columnname3", 및 등을 사용 하 여 후속 열에 대 한 이름을 생성 합니다.If the data adapter encounters duplicate columns while populating a DataTable, it generates names for the subsequent columns, using the pattern "columnname1", "columnname2", "columnname3", and so on. 놓 이기는 들어오는 데이터에 명명 되지 않은 열을 포함 하는 경우는 DataSet "column1", "Column2" 등에 따라 합니다.If the incoming data contains unnamed columns, they are placed in the DataSet according to the pattern "Column1", "Column2", and so on. 여러 결과 집합에 추가 될 때를 DataSet, 각 결과 집합을 별도 테이블에 배치 됩니다.When multiple result sets are added to the DataSet, each result set is placed in a separate table. 추가 결과 집합이 지정한 테이블 이름 (예: "Table", "Table1", "Table2" 및 등)에 정수 값을 추가 하 여 이름이 지정 됩니다.Additional result sets are named by appending integral values to the specified table name (for example, "Table", "Table1", "Table2", and so on). 열 및 테이블 이름을 사용 하 여 애플리케이션은 이러한 명명 패턴을 사용 하 여 충돌 하지 않도록 확인 해야 합니다.Applications using column and table names should ensure that conflicts with these naming patterns does not occur.

채우는 SELECT 문을 사용 하는 경우는 DataSet 여러 결과 반환을 일괄 처리 SQL 문과 같은 결과 중 하나에 오류가 포함 되어 있는 경우 모든 후속 결과 생략 되 고에 추가 되지 않습니다는 DataSet합니다.When the SELECT statement used to populate the DataSet returns multiple results, such as a batch SQL statements, if one of the results contains an error, all subsequent results are skipped and not added to the DataSet.

사용할 수는 Fill 메서드를 여러 번에 동일한 DataTable입니다.You can use the Fill method multiple times on the same DataTable. 기본 키가 있는 경우 들어오는 행이 이미 존재 하는 일치 하는 행과 병합 됩니다.If a primary key exists, incoming rows are merged with matching rows that already exist. 들어오는 행에 추가 된 기본 키가 없으면는 DataTable합니다.If no primary key exists, incoming rows are appended to the DataTable.

참고

구현의 여러 결과 반환 하는 SQL 문을 일괄 처리할 때 FillSchema 첫 번째 결과 대 한 스키마 정보를 검색 하는.NET Framework Data Provider for OLE DB에 대 한 합니다.When handling batch SQL statements that return multiple results, the implementation of FillSchema for the .NET Framework Data Provider for OLE DB retrieves schema information for only the first result. 사용 하 여 여러 결과 대 한 스키마 정보를 검색할 Fill 사용 하 여는 MissingSchemaActionAddWithKey합니다.To retrieve schema information for multiple results, use Fill with the MissingSchemaAction set to AddWithKey.

추가 정보

Fill(DataTable) Fill(DataTable) Fill(DataTable)

DataSet 이름을 사용하여 지정된 범위에서 데이터 소스의 행과 일치하도록 DataTable의 행을 추가하거나 새로 고칩니다.Adds or refreshes rows in a specified range in the DataSet to match those in the data source using the DataTable name.

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

매개 변수

dataTable
DataTable DataTable DataTable DataTable

테이블 매핑에 사용할 DataTable의 이름입니다.The name of the DataTable to use for table mapping.

반환

DataSet에 성공적으로 추가했거나 새로 고친 행의 수를 반환합니다.The number of rows successfully added to or refreshed in the DataSet. 여기에는 행을 반환하지 않는 문의 영향을 받는 행은 포함되지 않습니다.This does not include rows affected by statements that do not return rows.

예외

소스 테이블이 잘못된 경우The source table is invalid.

설명

합니다 Fill 연결 된 지정 된 SELECT 문을 사용 하 여 데이터 원본에서 행을 검색 하는 메서드 SelectCommand 속성입니다.The Fill method retrieves rows from the data source using the SELECT statement specified by an associated SelectCommand property. SELECT 문과 사용 하 여 연결 된 연결 개체는 유효 해야 합니다. 하지만 열려 있이 필요가 없습니다.The connection object associated with the SELECT statement must be valid, but it does not need to be open. 전에 연결이 닫히면 Fill 는 데이터를 검색 하려면을 열고 다음 닫는 하는를 호출 합니다.If the connection is closed before Fill is called, it is opened to retrieve data, then closed. 연결 하기 전에 열려 있으면 Fill 는 호출을 열린 상태로 유지 합니다.If the connection is open before Fill is called, it remains open.

Fill 작업이 대상에 행 추가 DataTable 개체를 DataSet만들기는 DataTable 경우 이미 없는 개체입니다.The Fill operation then adds the rows to destination DataTable objects in the DataSet, creating the DataTable objects if they do not already exist. 만들면 DataTable 개체는 Fill 작업은 일반적으로 열 이름 메타 데이터만 만듭니다.When creating DataTable objects, the Fill operation normally creates only column name metadata. 그러나 경우 합니다 MissingSchemaAction 속성이 AddWithKey, 적절 한 기본 키와 제약 조건도 만들어집니다.However, if the MissingSchemaAction property is set to AddWithKey, appropriate primary keys and constraints are also created.

경우는 DbDataAdapter 에서 중복 열을 채우는 동안는 DataTable, 패턴을 사용 하 여 후속 열에 대 한 이름을 생성 "columnname1", "columnname2", "columnname3", 및 등입니다.If the DbDataAdapter encounters duplicate columns while populating a DataTable, it generates names for the subsequent columns, using the pattern "columnname1", "columnname2", "columnname3", and so on. 놓 이기는 들어오는 데이터에 명명 되지 않은 열을 포함 하는 경우는 DataSet "column1", "Column2" 등에 따라 합니다.If the incoming data contains unnamed columns, they are placed in the DataSet according to the pattern "Column1", "Column2", and so on. 여러 결과 집합에 추가 될 때를 DataSet 각 결과 집합을 별도 테이블에 배치 됩니다.When multiple result sets are added to the DataSet each result set is placed in a separate table.

오버 로드 Fill 를 사용 하는 DataTable 대로 매개 변수 에서만 첫 번째 결과 가져옵니다.The overload of Fill that takes DataTable as a parameter only obtains the first result. 오버 로드를 사용 하 여 Fill 를 사용 하는 DataSet 여러 결과를 얻으려면 매개 변수로 합니다.Use an overload of Fill that takes DataSet as a parameter to obtain multiple results.

Fill 메서드 시나리오를 지원 합니다. 여기서는 DataSet 여러 개 포함 된 DataTable 개체 이름이 대/소문자만 다른 합니다.The Fill method supports scenarios where the DataSet contains multiple DataTable objects whose names differ only by case. 이러한 상황에서는 Fill 해당 테이블을 찾을 대/소문자 구분 비교를 수행 하 고 정확히 일치 하는 경우 새 테이블을 만듭니다.In such situations, Fill performs a case-sensitive comparison to find the corresponding table, and creates a new table if no exact match exists. 다음 C# 코드는이 동작을 보여 줍니다.The following C# code illustrates this behavior.

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".  

경우 Fill 라고 하며 DataSet 하나만 포함 되어 DataTable 이름이 다른 경우에 의해서만 DataTable 업데이트 됩니다.If Fill is called and the DataSet contains only one DataTable whose name differs only by case, that DataTable is updated. 이 시나리오에서는 비교는 대/소문자 구분.In this scenario, the comparison is case insensitive. 다음 C# 코드는이 동작을 보여 줍니다.The following C# code illustrates this behavior.

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입니다.You can use the Fill method multiple times on the same DataTable. 기본 키가 있는 경우 들어오는 행이 이미 존재 하는 일치 하는 행과 병합 됩니다.If a primary key exists, incoming rows are merged with matching rows that already exist. 들어오는 행에 추가 된 기본 키가 없으면는 DataTable합니다.If no primary key exists, incoming rows are appended to the DataTable.

SelectCommand 가 OUTER JOIN의 결과를 반환하면 DataAdapter 는 결과 PrimaryKey 에 대해 DataTable값을 설정하지 않습니다.If the SelectCommand returns the results of an OUTER JOIN, the DataAdapter does not set a PrimaryKey value for the resulting DataTable. 중복 행을 올바르게 확인할 수 있도록 기본 키를 명시적으로 정의 해야 합니다.You must explicitly define the primary key to ensure that duplicate rows are resolved correctly. 자세한 내용은 기본 키 정의합니다.For more information, see Defining Primary Keys.

참고

구현의 여러 결과 반환 하는 SQL 문을 일괄 처리할 때 FillFillSchema .NET Framework 데이터 공급자는 결과 대해서만 첫 번째 스키마 정보를 검색 합니다.When handling batch SQL statements that return multiple results, the implementation of Fill and FillSchema for a .NET Framework data provider retrieves schema information for only the first result.

상속자 참고

이 오버 로드는 Fill(DataSet) 메서드는 보호 되므로.NET Framework 데이터 공급자가 사용 하도록 설계 되었습니다.This overload of the Fill(DataSet) method is protected and is designed for use by a .NET Framework data provider.

추가 정보

Fill(DataTable, IDataReader) Fill(DataTable, IDataReader) Fill(DataTable, IDataReader)

지정된 DataTableIDataReader 이름을 사용하여 데이터 소스의 행과 일치하도록 DataTable의 행을 추가하거나 새로 고칩니다.Adds or refreshes rows in a DataTable to match those in the data source using the specified DataTable and IDataReader names.

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

매개 변수

dataTable
DataTable DataTable DataTable DataTable

레코드와 스키마(필요한 경우)로 채울 DataTable입니다.A DataTable to fill with records and, if necessary, schema.

dataReader
IDataReader IDataReader IDataReader IDataReader

IDataReader의 이름입니다.The name of the IDataReader.

반환

DataTable에 성공적으로 추가했거나 새로 고친 행의 수를 반환합니다.The number of rows successfully added to or refreshed in the DataTable. 여기에는 행을 반환하지 않는 문의 영향을 받는 행은 포함되지 않습니다.This does not include rows affected by statements that do not return rows.

Fill(DataSet, String) Fill(DataSet, String) Fill(DataSet, String)

DataSetDataSet 이름을 사용하여 데이터 소스의 행과 일치하도록 DataTable의 행을 추가하거나 새로 고칩니다.Adds or refreshes rows in the DataSet to match those in the data source using the DataSet and DataTable names.

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

매개 변수

dataSet
DataSet DataSet DataSet DataSet

레코드와 스키마(필요한 경우)로 채울 DataSet입니다.A DataSet to fill with records and, if necessary, schema.

srcTable
String String String String

테이블 매핑에 사용할 소스 테이블의 이름입니다.The name of the source table to use for table mapping.

반환

DataSet에 성공적으로 추가했거나 새로 고친 행의 수를 반환합니다.The number of rows successfully added to or refreshed in the DataSet. 여기에는 행을 반환하지 않는 문의 영향을 받는 행은 포함되지 않습니다.This does not include rows affected by statements that do not return rows.

예외

소스 테이블이 잘못된 경우The source table is invalid.

예제

다음 예제에서는 파생된 클래스 OleDbDataAdapter를 입력 하는 DataSet categories 테이블에서 행을 사용 하 여 합니다.The following example uses the derived class, OleDbDataAdapter, to fill a DataSet with rows from the categories table. 이 예에서는 만들었다고 가정를 OleDbDataAdapterDataSet합니다.This example assumes that you have created an OleDbDataAdapter and a DataSet.

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 문을 사용 하 여 데이터 원본에서 데이터를 검색 합니다.The Fill method retrieves the data from the data source using a SELECT statement. IDbConnection 선택 명령과 사용 하 여 연결 된 개체는 유효 해야 합니다. 하지만 열려 있이 필요는 없습니다.The IDbConnection object associated with the select command must be valid, but it does not need to be open. 경우는 IDbConnection 닫은 후 Fill 는 데이터를 검색 하려면을 열고 다음 닫는 하는를 호출 합니다.If the IDbConnection is closed before Fill is called, it is opened to retrieve data, then closed. 연결 하기 전에 열려 있으면 Fill 는 호출을 열린 상태로 유지 합니다.If the connection is open before Fill is called, it remains open.

명령에서 모든 행을 반환 하지 않는, 테이블에 추가 됩니다는 DataSet, 예외가 발생 하지 않습니다.If a command does not return any rows, no tables are added to the DataSet, and no exception is raised.

경우는 DbDataAdapter 개체를 채우는 동안 중복 된 열을 발견을 DataTable, 패턴 "columnname1", "columnname2", "columnname3", 및 등을 사용 하 여 후속 열에 대 한 이름을 생성 합니다.If the DbDataAdapter object encounters duplicate columns while populating a DataTable, it will generate names for the subsequent columns, using the pattern "columnname1", "columnname2", "columnname3", and so on. 놓 이기는 들어오는 데이터에 명명 되지 않은 열을 포함 하는 경우는 DataSet "column1", "Column2" 등에 따라 합니다.If the incoming data contains unnamed columns, they are placed in the DataSet according to the pattern "Column1", "Column2", and so on.

지정 된 쿼리가 여러 결과 반환 하는 경우 각 결과 집합을 별도 테이블에 배치 됩니다.When the query specified returns multiple results, each result set is placed in a separate table. 추가 결과 집합이 지정한 테이블 이름 (예: "Table", "Table1", "Table2" 및 등)에 정수 값을 추가 하 여 이름이 지정 됩니다.Additional result sets are named by appending integral values to the specified table name (for example, "Table", "Table1", "Table2", and so on). 테이블이 만들어지면 행을 반환 하지 않는 쿼리에 대 한 select 쿼리 뒤에 삽입 쿼리를 처리 하는 경우 이후 select 쿼리에 대해 생성 된 테이블은 수 "Table" 이라는, 생성 된 첫 번째 테이블 이기 때문에.Since no table is created for a query that does not return rows, if you were to process an insert query followed by a select query, the table created for the select query would be named "Table", because it is the first table created. 열 및 테이블 이름을 사용 하 여 애플리케이션은 이러한 명명 패턴을 사용 하 여 충돌 하지 않도록 확인 해야 합니다.Applications using column and table names should ensure that conflicts with these naming patterns does not occur.

Fill 메서드 시나리오를 지원 합니다. 여기서는 DataSet 여러 개 포함 된 DataTable 개체 이름이 대/소문자만 다른 합니다.The Fill method supports scenarios where the DataSet contains multiple DataTable objects whose names differ only by case. 이러한 상황에서는 Fill 해당 테이블을 찾을 대/소문자 구분 비교를 수행 하 고 정확히 일치 하는 경우 새 테이블을 만듭니다.In such situations, Fill performs a case-sensitive comparison to find the corresponding table, and creates a new table if no exact match exists. 다음 C# 코드는이 동작을 보여 줍니다.The following C# code illustrates this behavior.

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".  

경우 Fill 라고 하며 DataSet 하나만 포함 되어 DataTable 이름이 다른 경우에 의해서만 DataTable 업데이트 됩니다.If Fill is called and the DataSet contains only one DataTable whose name differs only by case, that DataTable is updated. 이 시나리오에서는 비교는 대/소문자 구분.In this scenario, the comparison is case insensitive. 다음 C# 코드는이 동작을 보여 줍니다.The following C# code illustrates this behavior.

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.  

오류 또는 예외가 발생 하는 경우 데이터 테이블을 채우는 동안 오류가 발생 하기 전에 추가 행은 데이터 테이블에 남아 있습니다.If an error or an exception is encountered while populating the data tables, rows added prior to the occurrence of the error remain in the data tables. 작업의 나머지 부분을 중단 합니다.The remainder of the operation is aborted.

채우는 SELECT 문을 사용 하는 경우는 DataSet 일괄 처리 SQL 문 다음에 유의 같은 여러 결과 반환 합니다.When the SELECT statement used to populate the DataSet returns multiple results, such as a batch SQL statement, be aware of the following:

  • 모든 후속 결과 생략 되 고 추가할 없습니다 오류가 있으면 결과 중 하나는 DataSet합니다.If one of the results contains an error, all subsequent results are skipped and not added to the DataSet.

후속을 사용 하는 경우 Fill 내용 새로 고침에 대 한 호출을 DataSet, 두 조건이 충족 되어야 합니다.When using subsequent Fill calls to refresh the contents of the DataSet, two conditions must be met:

  1. SQL 문을 처음 채우는 데 사용 되는 일치 해야 합니다 DataSet합니다.The SQL statement should match the one initially used to populate the DataSet.

  2. 합니다 열 정보 표시 되어야 합니다.The Key column information must be present. 기본 키 정보가 있는 경우 중복 행 조정 되며 한 번만 표시에 DataTable 에 해당 하는 DataSet합니다.If primary key information is present, any duplicate rows are reconciled and only appear once in the DataTable that corresponds to the DataSet. 통해 기본 키 정보를 설정할 수 있습니다 FillSchema, 지정 하 여는 PrimaryKey 의 속성을 DataTable, 하거나 설정 하 여를 MissingSchemaAction 속성을 AddWithKey.Primary key information may be set either through FillSchema, by specifying the PrimaryKey property of the DataTable, or by setting the MissingSchemaAction property to AddWithKey.

SelectCommand 가 OUTER JOIN의 결과를 반환하면 DataAdapter 는 결과 PrimaryKey 에 대해 DataTable값을 설정하지 않습니다.If the SelectCommand returns the results of an OUTER JOIN, the DataAdapter does not set a PrimaryKey value for the resulting DataTable. 중복 행을 올바르게 확인할 수 있도록 기본 키를 명시적으로 정의 해야 합니다.You must explicitly define the primary key to ensure that duplicate rows are resolved correctly. 자세한 내용은 기본 키 정의합니다.For more information, see Defining Primary Keys.

참고

구현의 여러 결과 반환 하는 SQL 문을 일괄 처리할 때 FillSchema 첫 번째 결과 대 한 스키마 정보를 검색 하는.NET Framework Data Provider for OLE DB에 대 한 합니다.When handling batch SQL statements that return multiple results, the implementation of FillSchema for the .NET Framework Data Provider for OLE DB retrieves schema information for only the first result. 사용 하 여 여러 결과 대 한 스키마 정보를 검색할 Fill 사용 하 여는 MissingSchemaActionAddWithKey합니다.To retrieve schema information for multiple results, use Fill with the MissingSchemaAction set to AddWithKey.

상속자 참고

재정의 하는 경우 Fill(DataSet) 파생된 클래스에서 호출 해야 기본 클래스의 Fill(DataSet) 메서드.When overriding Fill(DataSet) in a derived class, be sure to call the base class's Fill(DataSet) method.

추가 정보

Fill(DataSet) Fill(DataSet) Fill(DataSet)

DataSet의 행을 추가하거나 새로 고칩니다.Adds or refreshes rows in the DataSet.

public:
 override int Fill(System::Data::DataSet ^ dataSet);
public override int Fill (System.Data.DataSet dataSet);
override this.Fill : System.Data.DataSet -> int

매개 변수

dataSet
DataSet DataSet DataSet DataSet

레코드와 스키마(필요한 경우)로 채울 DataSet입니다.A DataSet to fill with records and, if necessary, schema.

반환

DataSet에 성공적으로 추가했거나 새로 고친 행의 수를 반환합니다.The number of rows successfully added to or refreshed in the DataSet. 여기에는 행을 반환하지 않는 문의 영향을 받는 행은 포함되지 않습니다.This does not include rows affected by statements that do not return rows.

구현

설명

Fill 메서드는 SELECT 문을 사용 하 여 데이터 원본에서 데이터를 검색 합니다.The Fill method retrieves the data from the data source using a SELECT statement. IDbConnection 선택 명령과 사용 하 여 연결 된 개체는 유효 해야 합니다. 하지만 열려 있이 필요는 없습니다.The IDbConnection object associated with the select command must be valid, but it does not need to be open. 경우는 IDbConnection 닫은 후 Fill 은 호출,이 열어 데이터를 검색 하 고 닫으면 합니다.If the IDbConnection is closed before Fill is called, it is opened to retrieve data and then closed. 연결 하기 전에 열려 있으면 Fill 는 호출을 열린 상태로 유지 합니다.If the connection is open before Fill is called, it remains open.

오류 또는 예외가 발생 하는 경우 데이터 테이블을 채우는 동안 오류가 발생 하기 전에 추가 행은 데이터 테이블에 남아 있습니다.If an error or an exception is encountered while populating the data tables, rows added prior to the occurrence of the error remain in the data tables. 작업의 나머지 부분을 중단 합니다.The remainder of the operation is aborted.

명령에서 모든 행을 반환 하지 않는, 테이블에 추가 됩니다는 DataSet, 예외가 발생 하지 않습니다.If a command does not return any rows, no tables are added to the DataSet, and no exception is raised.

경우는 DbDataAdapter 개체를 채우는 동안 중복 된 열을 발견 한 DataTable, 패턴을 사용 하 고 후속 열의 이름을 생성 "columnname1","columnname2" " columnname3", 및 등입니다.If the DbDataAdapter object encounters duplicate columns while populating a DataTable, it generates names for the subsequent columns using the pattern "columnname1", "columnname2", "columnname3", and so on. 놓 이기는 들어오는 데이터에 명명 되지 않은 열을 포함 하는 경우는 DataSet "column1", "Column2" 등에 따라 합니다.If the incoming data contains unnamed columns, they are placed in the DataSet according to the pattern "Column1", "Column2", and so on.

지정 된 쿼리가 여러 결과 반환 하는 경우 결과 집합 쿼리를 반환 하는 각 행에 대해 별도 테이블에 배치 됩니다.When the query specified returns multiple results, the result set for each row returning query is placed in a separate table. 추가 결과 집합이 지정한 테이블 이름 (예: "Table", "Table1", "Table2" 및 등)에 정수 값을 추가 하 여 이름이 지정 됩니다.Additional result sets are named by appending integral values to the specified table name (for example, "Table", "Table1", "Table2", and so on). 만들어지므로 테이블 행을 반환 하지 않는 쿼리에 대 한 select 쿼리 뒤에 삽입 쿼리를 처리 하는 경우, select 쿼리에 대해 생성 된 테이블 생성 되는 첫 번째 테이블 이기 때문에 "Table" 이라는 됩니다.Because no table is created for a query that does not return rows, if you process an insert query followed by a select query, the table created for the select query is named "Table" because it is the first table created. 열 및 테이블 이름을 사용 하 여 애플리케이션은 이러한 명명 패턴을 사용 하 여 충돌 하지 않도록 확인 해야 합니다.Applications using column and table names should ensure that conflicts with these naming patterns does not occur.

채우는 SELECT 문을 사용 하는 경우는 DataSet 여러 결과가 반환 일괄 처리 SQL 문과 같은 결과 중 하나에 오류가 포함 되어 있는 경우 모든 후속 결과 건너뛰고에 추가 되지 않습니다는 DataSet합니다.When the SELECT statement used to populate the DataSet returns multiple results, such as batch SQL statements, if one of the results contains an error, all subsequent results are skipped and are not added to the DataSet.

후속을 사용 하는 경우 Fill 내용 새로 고침에 대 한 호출을 DataSet, 두 조건이 충족 되어야 합니다.When using subsequent Fill calls to refresh the contents of the DataSet, two conditions must be met:

  1. SQL 문을 처음 채우는 데 사용 되는 일치 해야 합니다 DataSet합니다.The SQL statement should match the one initially used to populate the DataSet.

  2. 합니다 열 정보 표시 되어야 합니다.The Key column information must be present.

기본 키 정보가 있는 경우 중복 행 조정 되며 한 번만 표시에 DataTable 에 해당 하는 DataSet합니다.If primary key information is present, any duplicate rows are reconciled and only appear once in the DataTable that corresponds to the DataSet. 통해 기본 키 정보를 설정할 수 있습니다 FillSchema, 지정 하 여는 PrimaryKey 의 속성을 DataTable, 하거나 설정 하 여를 MissingSchemaAction 속성을 AddWithKey.Primary key information may be set either through FillSchema, by specifying the PrimaryKey property of the DataTable, or by setting the MissingSchemaAction property to AddWithKey.

SelectCommand 가 OUTER JOIN의 결과를 반환하면 DataAdapter 는 결과 PrimaryKey 에 대해 DataTable값을 설정하지 않습니다.If the SelectCommand returns the results of an OUTER JOIN, the DataAdapter does not set a PrimaryKey value for the resulting DataTable. 중복 행을 올바르게 확인할 수 있도록 기본 키를 명시적으로 정의 해야 합니다.You must explicitly define the primary key to ensure that duplicate rows are resolved correctly. 자세한 내용은 기본 키 정의합니다.For more information, see Defining Primary Keys.

참고

구현의 여러 결과 반환 하는 SQL 문을 일괄 처리할 때 FillSchema 첫 번째 결과 대 한 스키마 정보를 검색 하는.NET Framework Data Provider for OLE DB에 대 한 합니다.When handling batch SQL statements that return multiple results, the implementation of FillSchema for the .NET Framework Data Provider for OLE DB retrieves schema information for only the first result. 사용 하 여 여러 결과 대 한 스키마 정보를 검색할 Fill 사용 하 여는 MissingSchemaActionAddWithKey합니다.To retrieve schema information for multiple results, use Fill with the MissingSchemaAction set to AddWithKey.

추가 정보

Fill(DataTable, IDbCommand, CommandBehavior) Fill(DataTable, IDbCommand, CommandBehavior) Fill(DataTable, IDbCommand, CommandBehavior)

지정된 DataTable, DataTableIDbCommand를 사용하여 데이터 소스의 행과 일치하도록 CommandBehavior의 행을 추가하거나 새로 고칩니다.Adds or refreshes rows in a DataTable to match those in the data source using the specified DataTable, IDbCommand and 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

매개 변수

dataTable
DataTable DataTable DataTable DataTable

레코드와 스키마(필요한 경우)로 채울 DataTable입니다.A DataTable to fill with records and, if necessary, schema.

command
IDbCommand IDbCommand IDbCommand IDbCommand

데이터 소스에서 행을 검색하는 데 사용할 SQL SELECT 문입니다.The SQL SELECT statement used to retrieve rows from the data source.

반환

DataTable에 성공적으로 추가했거나 새로 고친 행의 수를 반환합니다.The number of rows successfully added to or refreshed in the DataTable. 여기에는 행을 반환하지 않는 문의 영향을 받는 행은 포함되지 않습니다.This does not include rows affected by statements that do not return rows.

설명

합니다 Fill 연결 된 지정 된 SELECT 문을 사용 하 여 데이터 원본에서 행을 검색 하는 메서드 SelectCommand 속성입니다.The Fill method retrieves rows from the data source using the SELECT statement specified by an associated SelectCommand property. SELECT 문과 사용 하 여 연결 된 연결 개체는 유효 해야 합니다. 하지만 열려 있이 필요가 없습니다.The connection object associated with the SELECT statement must be valid, but it does not need to be open. 연결 하기 전에 닫히면 Fill 는 호출 하기를 열어 데이터를 검색 하 고 닫으면 합니다.If the connection is closed before Fill is called, it is opened to retrieve data and then closed. 연결 하기 전에 열려 있으면 Fill 는 호출을 열린 상태로 유지 합니다.If the connection is open before Fill is called, it remains open.

Fill 지정된 된 대상에 행을 추가 하는 작업이 DataTable 개체를 DataSet만들기는 DataTable 경우 이미 없는 개체입니다.The Fill operation then adds the rows to the specified destination DataTable object in the DataSet, creating the DataTable object if it does not already exist. 만들 때를 DataTable 개체는 Fill 작업은 일반적으로 열 이름 메타 데이터만 만듭니다.When creating a DataTable object, the Fill operation normally creates only column name metadata. 그러나 경우 합니다 MissingSchemaAction 속성이 AddWithKey, 적절 한 기본 키와 제약 조건도 만들어집니다.However, if the MissingSchemaAction property is set to AddWithKey, appropriate primary keys and constraints are also created.

경우는 DbDataAdapter 개체를 채우는 동안 중복 된 열을 발생을 DataTable, 패턴을 사용 하 여 후속 열에 대 한 이름을 생성 "columnname1", "columnname2 ","columnname3 "등입니다.If the DbDataAdapter object encounters duplicate columns while populating a DataTable, it will generate names for the subsequent columns, using the pattern "columnname1", "columnname2", "columnname3", and so on. 놓 이기는 들어오는 데이터에 명명 되지 않은 열을 포함 하는 경우는 DataSet "column1", "Column2" 등에 따라 합니다.If the incoming data contains unnamed columns, they are placed in the DataSet according to the pattern "Column1", "Column2", and so on.

오버 로드 Fill 를 사용 하는 DataTable 대로 매개 변수 에서만 첫 번째 결과 가져옵니다.The overload of Fill that takes DataTable as a parameter only obtains the first result. 오버 로드를 사용 하 여 Fill 를 사용 하는 DataSet 여러 결과를 얻으려면 매개 변수로 합니다.Use an overload of Fill that takes DataSet as a parameter to obtain multiple results.

사용할 수는 Fill 메서드를 여러 번에 동일한 DataTable입니다.You can use the Fill method multiple times on the same DataTable. 기본 키가 있는 경우 들어오는 행이 이미 존재 하는 일치 하는 행과 병합 됩니다.If a primary key exists, incoming rows are merged with matching rows that already exist. 들어오는 행에 추가 된 기본 키가 없으면는 DataTable합니다.If no primary key exists, incoming rows are appended to the DataTable.

SelectCommand 가 OUTER JOIN의 결과를 반환하면 DataAdapter 는 결과 PrimaryKey 에 대해 DataTable값을 설정하지 않습니다.If the SelectCommand returns the results of an OUTER JOIN, the DataAdapter does not set a PrimaryKey value for the resulting DataTable. 중복 행을 올바르게 확인할 수 있도록 기본 키를 명시적으로 정의 해야 합니다.You must explicitly define the primary key to ensure that duplicate rows are resolved correctly. 자세한 내용은 기본 키 정의합니다.For more information, see Defining Primary Keys.

참고

구현의 여러 결과 반환 하는 SQL 문을 일괄 처리할 때 FillSchema 첫 번째 결과 대 한 스키마 정보를 검색 하는.NET Framework Data Provider for OLE DB에 대 한 합니다.When handling batch SQL statements that return multiple results, the implementation of FillSchema for the .NET Framework Data Provider for OLE DB retrieves schema information for only the first result. 사용 하 여 여러 결과 대 한 스키마 정보를 검색할 Fill 사용 하 여는 MissingSchemaActionAddWithKey합니다.To retrieve schema information for multiple results, use Fill with the MissingSchemaAction set to AddWithKey.

상속자 참고

이 오버 로드는 Fill(DataSet) 메서드는 보호 되므로.NET Framework 데이터 공급자가 사용 하도록 설계 되었습니다.This overload of the Fill(DataSet) method is protected and is designed for use by a .NET Framework data provider.

추가 정보

적용 대상