DbDataAdapter.Fill Metoda

Definicja

Wypełnia element DataSet lub DataTable.

Przeciążenia

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

Dodaje lub odświeża wiersze w określonym zakresie w DataSet obiekcie , aby były zgodne z tymi w źródle danych przy użyciu DataSet nazw tabel źródłowych i źródłowych, ciągów poleceń i zachowania polecenia.

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

Dodaje lub odświeża wiersze w określonym zakresie w DataSet obiekcie w celu dopasowania ich do tych w źródle danych przy użyciu DataSet nazw i DataTable .

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

Dodaje lub odświeża wiersze w określonym zakresie w DataSet obiekcie w celu dopasowania ich do tych w źródle danych przy użyciu DataSetnazw , DataTablei IDataReader .

Fill(DataSet, Int32, Int32, String)

Dodaje lub odświeża wiersze w określonym zakresie w DataSet obiekcie w celu dopasowania ich do tych w źródle danych przy użyciu DataSet nazw i DataTable .

Fill(Int32, Int32, DataTable[])

Dodaje lub odświeża wiersze w co najmniej jednym DataTable obiekcie w celu dopasowania ich do tych w źródle danych, począwszy od określonego rekordu i pobierania do określonej maksymalnej liczby rekordów.

Fill(DataTable)

Dodaje lub odświeża wiersze w określonym zakresie w DataSet obiekcie w celu dopasowania ich do wierszy w źródle danych przy użyciu DataTable nazwy .

Fill(DataTable, IDataReader)

Dodaje lub odświeża wiersze w obiekcie DataTable w celu dopasowania ich do tych w źródle danych przy użyciu określonych DataTable nazw i IDataReader .

Fill(DataSet, String)

Dodaje lub odświeża wiersze w DataSet obiekcie w celu dopasowania ich do tych w źródle danych przy użyciu DataSet nazw i DataTable .

Fill(DataSet)

Dodaje lub odświeża wiersze w obiekcie DataSet.

Fill(DataTable, IDbCommand, CommandBehavior)

Dodaje lub odświeża wiersze w DataTable obiekcie w celu dopasowania ich do tych w źródle danych przy użyciu określonych DataTableelementów i IDbCommandCommandBehavior.

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

Źródło:
DbDataAdapter.cs
Źródło:
DbDataAdapter.cs
Źródło:
DbDataAdapter.cs

Dodaje lub odświeża wiersze w określonym zakresie w DataSet obiekcie , aby były zgodne z tymi w źródle danych przy użyciu DataSet nazw tabel źródłowych i źródłowych, ciągów poleceń i zachowania polecenia.

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

Parametry

dataSet
DataSet

Element DataSet do wypełnienia rekordami i, w razie potrzeby, schemat.

startRecord
Int32

Numer rekordu opartego na zera, od których należy zacząć.

maxRecords
Int32

Maksymalna liczba rekordów do pobrania. Określ wartość 0, aby pobrać wszystkie rekordy po rekordzie początkowym.

srcTable
String

Nazwa tabeli źródłowej do użycia na potrzeby mapowania tabel.

command
IDbCommand

Instrukcja SQL SELECT używana do pobierania wierszy ze źródła danych.

behavior
CommandBehavior

CommandBehavior Jedna z wartości.

Zwraca

Liczba wierszy pomyślnie dodanych do lub odświeżonych w pliku DataSet. Nie obejmuje to wierszy, których dotyczą instrukcje, które nie zwracają wierszy.

Wyjątki

Tabela źródłowa jest nieprawidłowa.

Parametr startRecord jest mniejszy niż 0.

-lub-

Parametr maxRecords jest mniejszy niż 0.

Uwagi

Wartość maxRecords 0 pobiera wszystkie rekordy znalezione po rekordzie początkowym. Jeśli maxRecords jest większa niż liczba pozostałych wierszy, zwracane są tylko pozostałe wiersze i nie jest wyświetlany żaden błąd.

Metoda Fill pobiera wiersze ze źródła danych przy użyciu instrukcji SELECT określonej przez skojarzona SelectCommand właściwość. Obiekt połączenia skojarzony z instrukcją SELECT musi być prawidłowy, ale nie musi być otwarty. Jeśli połączenie zostanie zamknięte przed Fill wywołaniem, zostanie otwarte w celu pobrania danych, a następnie zamknięte. Jeśli połączenie jest otwarte przed Fill wywołaniem, pozostaje otwarte.

Następnie Fill operacja dodaje wiersze do obiektów docelowych DataTable w DataSetobiekcie , tworząc DataTable obiekty, jeśli jeszcze nie istnieją. Podczas tworzenia DataTable obiektów Fill operacja zwykle tworzy tylko metadane nazwy kolumny. Jeśli jednak właściwość jest ustawiona MissingSchemaAction na AddWithKey, tworzone są również odpowiednie klucze podstawowe i ograniczenia.

Jeśli napotka DbDataAdapter zduplikowane kolumny podczas wypełniania DataTableelementu , generuje nazwy dla kolejnych kolumn przy użyciu wzorca "nazwakolumny1", "nazwa_kolumny2", "nazwa_kolumny3" itd. Jeśli dane przychodzące zawierają nienazwane kolumny, są one umieszczane w DataSet zależności od wzorca "Column1", "Column2" itd. Gdy do każdego zestawu wyników jest dodawanych wiele zestawów wyników, należy umieścić DataSet w oddzielnej tabeli. Dodatkowe zestawy wyników są nazwane przez dołączenie wartości całkowitych do określonej nazwy tabeli (na przykład "Tabela", "Tabela1", "Tabela2" itd.). Jeśli aplikacja używa nazw kolumn i tabel, upewnij się, że nie występują konflikty z tymi wzorcami nazewnictwa.

Metoda Fill obsługuje scenariusze, w których DataSet obiekt zawiera wiele DataTable obiektów, których nazwy różnią się tylko wielkością liter. W takich sytuacjach wykonuje porównanie uwzględniające wielkość liter, aby znaleźć odpowiednią tabelę, i tworzy nową tabelę, Fill jeśli nie istnieje dokładne dopasowanie. Poniższy kod w języku C# ilustruje to zachowanie.

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

Jeśli Fill jest wywoływana DataSet i zawiera tylko jedną DataTable , której nazwa różni się tylko wielkością liter, DataTable jest to aktualizowane. W tym scenariuszu porównanie nie uwzględnia wielkości liter. Poniższy kod w języku C# ilustruje to zachowanie.

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.  

Możesz użyć Fill metody wiele razy w tym samym DataTableobiekcie . Jeśli klucz podstawowy istnieje, przychodzące wiersze są scalane z pasującymi wierszami, które już istnieją. Jeśli klucz podstawowy nie istnieje, przychodzące wiersze są dołączane do elementu DataTable.

SelectCommand Jeśli funkcja zwraca wyniki sprzężenia ZEWNĘTRZNEgo, DataAdapter parametr nie ustawia PrimaryKey wartości wynikowej DataTable. Należy jawnie zdefiniować klucz podstawowy, aby upewnić się, że zduplikowane wiersze są prawidłowo rozpoznawane. Aby uzyskać więcej informacji, zobacz Definiowanie kluczy podstawowych.

Uwaga

W przypadku obsługi instrukcji sql wsadowych, które zwracają wiele wyników, implementacja Fill i FillSchema dla dostawcy danych .NET Framework pobiera informacje o schemacie tylko dla pierwszego wyniku.

Uwagi dotyczące dziedziczenia

To przeciążenie Fill(DataSet) metody jest chronione i jest przeznaczone do użycia przez dostawcę danych .NET Framework.

Zobacz też

Dotyczy

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

Źródło:
DbDataAdapter.cs
Źródło:
DbDataAdapter.cs
Źródło:
DbDataAdapter.cs

Dodaje lub odświeża wiersze w określonym zakresie w DataSet celu dopasowania ich do tych w źródle danych przy użyciu nazw DataSet i .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

Parametry

dataTables
DataTable[]

Obiekty DataTable do wypełnienia ze źródła danych.

startRecord
Int32

Numer rekordu opartego na zera, od których należy zacząć.

maxRecords
Int32

Maksymalna liczba rekordów do pobrania. Określ wartość 0, aby pobrać wszystkie rekordy po rekordzie początkowym.

command
IDbCommand

Wykonany IDbCommand w celu wypełnienia DataTable obiektów.

behavior
CommandBehavior

CommandBehavior Jedna z wartości.

Zwraca

Liczba wierszy dodanych do lub odświeżonych w tabelach danych.

Wyjątki

Element DataSet jest nieprawidłowy.

Tabela źródłowa jest nieprawidłowa.

-lub-

Połączenie jest nieprawidłowe.

Nie można odnaleźć połączenia.

Parametr startRecord jest mniejszy niż 0.

-lub-

Parametr maxRecords jest mniejszy niż 0.

Uwagi

Wartość maxRecords 0 pobiera wszystkie rekordy znalezione po rekordzie początkowym. Jeśli maxRecords jest większa niż liczba pozostałych wierszy, zwracane są tylko pozostałe wiersze i nie jest wyświetlany żaden błąd.

Metoda Fill pobiera dane ze źródła danych przy użyciu instrukcji SELECT. Obiekt IDbConnection skojarzony z instrukcją SELECT musi być prawidłowy, ale nie musi być otwarty. Jeśli element IDbConnection jest zamknięty przed Fill wywołaniem, zostanie otwarty w celu pobrania danych, a następnie zamknięty. Jeśli połączenie jest otwarte przed Fill wywołaniem, pozostaje otwarte.

Jeśli polecenie nie zwraca żadnych wierszy, żadne tabele nie są dodawane do DataSetelementu , ale nie jest zgłaszany wyjątek.

DbDataAdapter Jeśli obiekt napotka zduplikowane kolumny podczas wypełniania DataTableelementu , wygeneruje nazwy dla kolejnych kolumn przy użyciu wzorca "nazwakolumny1", "nazwa_kolumny2", "nazwa_kolumny3" itd. Jeśli dane przychodzące zawierają nienazwane kolumny, są one umieszczane w DataSet zależności od wzorca "Column1", "Column2" itd.

Gdy określone zapytanie zwraca wiele wyników, każdy zestaw wyników jest umieszczany w oddzielnej tabeli. Dodatkowe zestawy wyników są nazwane przez dołączenie wartości całkowitych do określonej nazwy tabeli (na przykład "Tabela", "Tabela1", "Tabela2" itd.). Ponieważ żadna tabela nie jest tworzona dla kwerendy, która nie zwraca wierszy, w przypadku przetwarzania zapytania wstawianego, a następnie zapytania wyboru, tabela utworzona dla kwerendy wybierania będzie miała nazwę "Tabela", ponieważ jest to pierwsza utworzona tabela. Jeśli aplikacja używa nazw kolumn i tabel, upewnij się, że nie występują konflikty z tymi wzorcami nazewnictwa.

Metoda Fill obsługuje scenariusze, w których DataSet obiekt zawiera wiele DataTable obiektów, których nazwy różnią się tylko wielkością liter. W takich sytuacjach wykonuje porównanie uwzględniające wielkość liter, aby znaleźć odpowiednią tabelę, i tworzy nową tabelę, Fill jeśli nie istnieje dokładne dopasowanie. Poniższy kod w języku C# ilustruje to zachowanie.

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

Jeśli Fill jest wywoływana DataSet i zawiera tylko jedną DataTable , której nazwa różni się tylko wielkością liter, DataTable jest to aktualizowane. W tym scenariuszu porównanie jest bez uwzględniania wielkości liter. Poniższy kod w języku C# ilustruje to zachowanie.

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.  

Jeśli podczas wypełniania tabel danych wystąpi błąd lub wyjątek, wiersze dodane przed wystąpieniem błędu pozostają w tabelach danych. Pozostała część operacji została przerwana.

Gdy instrukcja SELECT używana do wypełniania DataTable obiektów zwraca wiele wyników, takich jak instrukcja SQL wsadowa, należy pamiętać o następujących kwestiach:

  • Podczas przetwarzania wielu wyników z instrukcji maxRecords batch SQL dotyczy tylko pierwszego wyniku. To samo dotyczy wierszy zawierających wyniki rozdziału (tylko dostawca danych .NET Framework dla OLE DB). Wynik najwyższego poziomu jest ograniczony przez maxRecordselement , ale wszystkie wiersze podrzędne są dodawane.

  • Jeśli jeden z wyników zawiera błąd, wszystkie kolejne wyniki zostaną pominięte.

Uwaga

Wartość DataSet nie będzie zawierać więcej niż liczba rekordów wskazanych przez maxRecordswartość . Jednak cały zestaw wyników wygenerowany przez zapytanie jest nadal zwracany z serwera.

Uwagi dotyczące dziedziczenia

Podczas zastępowania Fill(DataSet) w klasie pochodnej należy wywołać metodę klasy bazowej Fill(DataSet) .

Zobacz też

Dotyczy

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

Dodaje lub odświeża wiersze w określonym zakresie w DataSet celu dopasowania ich do tych w źródle danych przy użyciu nazw DataSet, DataTablei IDataReader .

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

Parametry

dataSet
DataSet

Element do DataSet wypełnienia rekordami i, w razie potrzeby, schemat.

srcTable
String

Nazwa elementu DataTable do użycia do mapowania tabeli.

dataReader
IDataReader

Nazwa elementu IDataReader.

startRecord
Int32

Numer rekordu opartego na zerach, który ma zaczynać się od.

maxRecords
Int32

Maksymalna liczba rekordów do pobrania. Określ wartość 0, aby pobrać wszystkie rekordy po rekordzie początkowym.

Zwraca

Liczba wierszy, które zostały pomyślnie dodane lub odświeżone w obiekcie DataSet. Nie obejmuje to wierszy, których dotyczą instrukcje, które nie zwracają wierszy.

Wyjątki

startRecord wartość jest mniejsza niż 0.

-lub-

maxRecords wartość jest mniejsza niż 0.

Uwagi

Wartość maxRecords 0 pobiera wszystkie rekordy znalezione po rekordzie początkowym. Jeśli maxRecords jest większa niż liczba pozostałych wierszy, zwracane są tylko pozostałe wiersze i nie zostanie wyświetlony żaden błąd.

Dotyczy

Fill(DataSet, Int32, Int32, String)

Źródło:
DbDataAdapter.cs
Źródło:
DbDataAdapter.cs
Źródło:
DbDataAdapter.cs

Dodaje lub odświeża wiersze w określonym zakresie w DataSet celu dopasowania ich do tych w źródle danych przy użyciu nazw DataSet i .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

Parametry

dataSet
DataSet

Element do DataSet wypełnienia rekordami i, w razie potrzeby, schemat.

startRecord
Int32

Numer rekordu opartego na zerach, który ma zaczynać się od.

maxRecords
Int32

Maksymalna liczba rekordów do pobrania. Określ wartość 0, aby pobrać wszystkie rekordy po rekordzie początkowym.

srcTable
String

Nazwa tabeli źródłowej, która ma być używana do mapowania tabel.

Zwraca

Liczba wierszy, które zostały pomyślnie dodane lub odświeżone w obiekcie DataSet. Nie obejmuje to wierszy, których dotyczą instrukcje, które nie zwracają wierszy.

Wyjątki

Element DataSet jest nieprawidłowy.

Tabela źródłowa jest nieprawidłowa.

-lub-

Połączenie jest nieprawidłowe.

Nie można odnaleźć połączenia.

Parametr startRecord jest mniejszy niż 0.

-lub-

Parametr maxRecords jest mniejszy niż 0.

Przykłady

W poniższym przykładzie użyto klasy pochodnej , OleDbDataAdapteraby wypełnić DataSet 15 wierszy, począwszy od wiersza 10, z tabeli Kategorie . W tym przykładzie założono, że utworzono obiekt OleDbDataAdapter i .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

Uwagi

Wartość maxRecords 0 pobiera wszystkie rekordy znalezione po rekordzie początkowym. Jeśli maxRecords jest większa niż liczba pozostałych wierszy, zwracane są tylko pozostałe wiersze i nie zostanie wyświetlony żaden błąd.

Jeśli odpowiednie polecenie select jest instrukcją zwracającą wiele wyników, Fill dotyczy maxRecords tylko pierwszego wyniku.

Metoda Fill pobiera dane ze źródła danych przy użyciu instrukcji SELECT. IDbConnection Obiekt skojarzony z instrukcją SELECT musi być prawidłowy, ale nie musi być otwarty. Jeśli element IDbConnection zostanie zamknięty przed Fill wywołaniem, zostanie otwarty w celu pobrania danych, a następnie zamknięty. Jeśli połączenie jest otwarte przed Fill wywołaniem, pozostaje otwarte.

Jeśli polecenie nie zwraca żadnych wierszy, żadne tabele nie zostaną dodane do DataSetelementu , ale nie zostanie zgłoszony żaden wyjątek.

DbDataAdapter Jeśli obiekt napotka zduplikowane kolumny podczas wypełniania DataTableelementu , wygeneruje nazwy kolejnych kolumn przy użyciu wzorca "nazwa kolumny1", "nazwa kolumny2", "nazwa kolumny3" itd. Jeśli dane przychodzące zawierają nienazwane kolumny, są one umieszczane w DataSet zależności od wzorca "Column1", "Column2" i tak dalej.

Gdy określone zapytanie zwraca wiele wyników, każdy zestaw wyników jest umieszczany w oddzielnej tabeli. Dodatkowe zestawy wyników są nazywane dołączaniem wartości całkowitych do określonej nazwy tabeli (na przykład "Tabela", "Table1", "Table2" itd.). Ponieważ żadna tabela nie jest tworzona dla kwerendy, która nie zwraca wierszy, jeśli przetwarzasz zapytanie wstawiania, po którym następuje zapytanie wyboru, tabela utworzona dla wybranego zapytania nosi nazwę "Tabela", ponieważ jest to pierwsza utworzona tabela. Jeśli aplikacja używa nazw kolumn i tabel, upewnij się, że nie występują konflikty z tymi wzorcami nazewnictwa.

Metoda Fill obsługuje scenariusze, w których DataSet zawiera wiele DataTable obiektów, których nazwy różnią się tylko wielkością liter. W takich sytuacjach wykonuje porównanie uwzględniające wielkość liter, aby znaleźć odpowiednią tabelę i tworzy nową tabelę, Fill jeśli nie istnieje dokładne dopasowanie. Poniższy kod w języku C# ilustruje to zachowanie.

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

Jeśli Fill jest wywoływana DataSet i zawiera tylko jeden DataTable , którego nazwa różni się tylko wielkością liter, jest to DataTable aktualizowane. W tym scenariuszu porównanie jest bez uwzględniania wielkości liter. Poniższy kod w języku C# ilustruje to zachowanie.

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.  

Jeśli podczas wypełniania tabel danych wystąpi błąd lub wyjątek, wiersze dodane przed wystąpieniem błędu pozostają w tabelach danych. Pozostała część operacji została przerwana.

Gdy instrukcja SELECT użyta do wypełnienia DataSet zwraca wiele wyników, takich jak instrukcje batch SQL, należy pamiętać o następujących kwestiach:

  • Podczas przetwarzania wielu wyników z instrukcji maxRecords batch SQL dotyczy tylko pierwszego wyniku. To samo dotyczy wierszy zawierających wyniki rozdziału (tylko dostawca danych .NET Framework dla OLE DB). Wynik najwyższego poziomu jest ograniczony przez maxRecordselement , ale wszystkie wiersze podrzędne są dodawane.

  • Jeśli jeden z wyników zawiera błąd, wszystkie kolejne wyniki zostaną pominięte i nie zostaną dodane do elementu DataSet.

W przypadku korzystania z kolejnych Fill wywołań w celu odświeżenia zawartości DataSetelementu należy spełnić dwa warunki:

  1. Instrukcja SQL powinna być zgodna z tym, który początkowo był używany do wypełniania elementu DataSet.

  2. Informacje o kolumnie Klucz muszą być obecne.

Jeśli istnieją podstawowe informacje o kluczu, wszystkie zduplikowane wiersze zostaną uzgodnione i będą wyświetlane tylko raz w DataTable obiekcie odpowiadającym DataSetwartości . Podstawowe informacje o kluczu mogą być ustawiane za pomocą FillSchemametody , określając PrimaryKey właściwość DataTableobiektu lub ustawiając MissingSchemaAction właściwość na AddWithKey.

Jeśli funkcja SelectCommand zwraca wyniki zewnętrznego sprzężenia, DataAdapter wartość nie ustawia PrimaryKey wartości wynikowej DataTable. Należy jawnie zdefiniować klucz podstawowy, aby upewnić się, że zduplikowane wiersze są poprawnie rozpoznawane. Aby uzyskać więcej informacji, zobacz Definiowanie kluczy podstawowych.

Uwaga

Podczas obsługi instrukcji batch SQL, które zwracają wiele wyników, implementacja FillSchema dostawcy danych .NET Framework dla OLE DB pobiera informacje o schemacie tylko dla pierwszego wyniku. Aby pobrać informacje o schemacie dla wielu wyników, użyj Fill polecenia z zestawem MissingSchemaAction .AddWithKey

Uwaga

Wartość DataSet nie będzie zawierać więcej niż liczba rekordów wskazanych przez maxRecordswartość . Jednak cały zestaw wyników wygenerowany przez zapytanie jest nadal zwracany z serwera.

Uwagi dotyczące dziedziczenia

Podczas zastępowania Fill(DataSet) w klasie pochodnej należy wywołać metodę klasy bazowej Fill(DataSet) .

Zobacz też

Dotyczy

Fill(Int32, Int32, DataTable[])

Źródło:
DbDataAdapter.cs
Źródło:
DbDataAdapter.cs
Źródło:
DbDataAdapter.cs

Dodaje lub odświeża wiersze w co najmniej jednym DataTable obiekcie w celu dopasowania ich do tych w źródle danych, począwszy od określonego rekordu i pobierania do określonej maksymalnej liczby rekordów.

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

Parametry

startRecord
Int32

Numer rekordu opartego na zerach, który ma zaczynać się od.

maxRecords
Int32

Maksymalna liczba rekordów do pobrania. Określ wartość 0, aby pobrać wszystkie rekordy po rekordzie początkowym.

dataTables
DataTable[]

Obiekty DataTable do wypełnienia ze źródła danych.

Zwraca

Liczba wierszy pomyślnie dodanych do lub odświeżonych w DataTable obiektach. Ta wartość nie zawiera wierszy, których dotyczą instrukcje, które nie zwracają wierszy.

Wyjątki

dataTables jest lub jest null pustą tablicą.

startRecord wartość jest mniejsza niż 0.

-lub-

maxRecords wartość jest mniejsza niż 0.

Uwagi

Wartość maxRecords 0 pobiera wszystkie rekordy znalezione po rekordzie początkowym. Jeśli maxRecords jest większa niż liczba pozostałych wierszy, zwracane są tylko pozostałe wiersze i nie jest wyświetlany żaden błąd.

Metoda Fill pobiera wiersze ze źródła danych przy użyciu instrukcji SELECT określonej przez skojarzona SelectCommand właściwość. Obiekt połączenia skojarzony z instrukcją SELECT musi być prawidłowy, ale nie musi być otwarty. Jeśli połączenie zostanie zamknięte przed Fill wywołaniem, zostanie otwarte w celu pobrania danych, a następnie zostanie zamknięte. Jeśli połączenie jest otwarte przed Fill wywołaniem, pozostaje otwarte.

Następnie Fill operacja dodaje wiersze do obiektów docelowych DataTable w DataSetobiekcie , tworząc DataTable obiekty, jeśli jeszcze nie istnieją. Podczas tworzenia DataTable obiektów Fill operacja zwykle tworzy tylko metadane nazwy kolumny. Jeśli jednak właściwość jest ustawiona MissingSchemaAction na AddWithKey, tworzone są również odpowiednie klucze podstawowe i ograniczenia.

SelectCommand Jeśli funkcja zwraca wyniki sprzężenia ZEWNĘTRZNEgo, DataAdapter parametr nie ustawia PrimaryKey wartości wynikowej DataTable. Należy jawnie zdefiniować klucz podstawowy, aby upewnić się, że zduplikowane wiersze są prawidłowo rozpoznawane. Aby uzyskać więcej informacji, zobacz Definiowanie kluczy podstawowych.

Jeśli karta danych napotka zduplikowane kolumny podczas wypełniania DataTableelementu , generuje nazwy kolejnych kolumn przy użyciu wzorca "columnname1", "columnname2", "columnname3" itd. Jeśli dane przychodzące zawierają nienazwane kolumny, są one umieszczane w DataSet zależności od wzorca "Column1", "Column2" itd. Po dodaniu wielu zestawów wyników do DataSetzestawu wyników każdy zestaw wyników jest umieszczany w oddzielnej tabeli. Dodatkowe zestawy wyników są nazwane przez dołączenie wartości całkowitych do określonej nazwy tabeli (na przykład "Tabela", "Tabela1", "Tabela2" itd.). Jeśli aplikacja używa nazw kolumn i tabel, upewnij się, że nie występują konflikty z tymi wzorcami nazewnictwa.

Gdy instrukcja SELECT użyta do wypełnienia DataSet zwraca wiele wyników, takich jak instrukcje batch SQL, jeśli jeden z wyników zawiera błąd, wszystkie kolejne wyniki zostaną pominięte i nie zostaną dodane do .DataSet

Możesz użyć Fill metody wiele razy w tym samym DataTableobiekcie . Jeśli klucz podstawowy istnieje, przychodzące wiersze są scalane z pasującymi wierszami, które już istnieją. Jeśli klucz podstawowy nie istnieje, przychodzące wiersze są dołączane do elementu DataTable.

Uwaga

W przypadku obsługi instrukcji sql wsadowych, które zwracają wiele wyników, implementacja FillSchema dostawcy danych .NET Framework dla OLE DB pobiera informacje o schemacie tylko dla pierwszego wyniku. Aby pobrać informacje o schemacie dla wielu wyników, użyj polecenia Fill z zestawem MissingSchemaAction na wartość AddWithKey.

Zobacz też

Dotyczy

Fill(DataTable)

Źródło:
DbDataAdapter.cs
Źródło:
DbDataAdapter.cs
Źródło:
DbDataAdapter.cs

Dodaje lub odświeża wiersze w określonym zakresie w DataSet obiekcie w celu dopasowania ich do wierszy w źródle danych przy użyciu DataTable nazwy .

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

Parametry

dataTable
DataTable

Nazwa DataTable elementu do użycia na potrzeby mapowania tabeli.

Zwraca

Liczba wierszy pomyślnie dodanych do lub odświeżonych w pliku DataSet. Nie obejmuje to wierszy, których dotyczą instrukcje, które nie zwracają wierszy.

Wyjątki

Tabela źródłowa jest nieprawidłowa.

Uwagi

Metoda Fill pobiera wiersze ze źródła danych przy użyciu instrukcji SELECT określonej przez skojarzona SelectCommand właściwość. Obiekt połączenia skojarzony z instrukcją SELECT musi być prawidłowy, ale nie musi być otwarty. Jeśli połączenie zostanie zamknięte przed Fill wywołaniem, zostanie otwarte w celu pobrania danych, a następnie zamknięte. Jeśli połączenie jest otwarte przed Fill wywołaniem, pozostaje otwarte.

Następnie Fill operacja dodaje wiersze do obiektów docelowych DataTable w DataSetobiekcie , tworząc DataTable obiekty, jeśli jeszcze nie istnieją. Podczas tworzenia DataTable obiektów Fill operacja zwykle tworzy tylko metadane nazwy kolumny. Jeśli jednak właściwość jest ustawiona MissingSchemaAction na AddWithKey, tworzone są również odpowiednie klucze podstawowe i ograniczenia.

Jeśli napotka DbDataAdapter zduplikowane kolumny podczas wypełniania DataTableelementu , generuje nazwy dla kolejnych kolumn przy użyciu wzorca "nazwakolumny1", "nazwa_kolumny2", "nazwa_kolumny3" itd. Jeśli dane przychodzące zawierają nienazwane kolumny, są one umieszczane w DataSet zależności od wzorca "Column1", "Column2" itd. Gdy do każdego zestawu wyników jest dodawanych wiele zestawów wyników, należy umieścić DataSet w oddzielnej tabeli.

Przeciążenie elementu Fill , które przyjmuje DataTable jako parametr, uzyskuje tylko pierwszy wynik. Użyj przeciążenia Fill , które przyjmuje DataSet jako parametr, aby uzyskać wiele wyników.

Metoda Fill obsługuje scenariusze, w których DataSet obiekt zawiera wiele DataTable obiektów, których nazwy różnią się tylko wielkością liter. W takich sytuacjach wykonuje porównanie uwzględniające wielkość liter, aby znaleźć odpowiednią tabelę, i tworzy nową tabelę, Fill jeśli nie istnieje dokładne dopasowanie. Poniższy kod w języku C# ilustruje to zachowanie.

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

Jeśli Fill jest wywoływana DataSet i zawiera tylko jedną DataTable , której nazwa różni się tylko wielkością liter, DataTable jest to aktualizowane. W tym scenariuszu porównanie nie uwzględnia wielkości liter. Poniższy kod w języku C# ilustruje to zachowanie.

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.  

Możesz użyć Fill metody wiele razy w tym samym DataTableobiekcie . Jeśli klucz podstawowy istnieje, przychodzące wiersze są scalane z pasującymi wierszami, które już istnieją. Jeśli klucz podstawowy nie istnieje, przychodzące wiersze są dołączane do elementu DataTable.

SelectCommand Jeśli funkcja zwraca wyniki sprzężenia ZEWNĘTRZNEgo, DataAdapter parametr nie ustawia PrimaryKey wartości wynikowej DataTable. Należy jawnie zdefiniować klucz podstawowy, aby upewnić się, że zduplikowane wiersze są prawidłowo rozpoznawane. Aby uzyskać więcej informacji, zobacz Definiowanie kluczy podstawowych.

Uwaga

W przypadku obsługi instrukcji sql wsadowych, które zwracają wiele wyników, implementacja Fill i FillSchema dla dostawcy danych .NET Framework pobiera informacje o schemacie tylko dla pierwszego wyniku.

Uwagi dotyczące dziedziczenia

To przeciążenie Fill(DataSet) metody jest chronione i jest przeznaczone do użycia przez dostawcę danych .NET Framework.

Zobacz też

Dotyczy

Fill(DataTable, IDataReader)

Dodaje lub odświeża wiersze w obiekcie DataTable w celu dopasowania ich do tych w źródle danych przy użyciu określonych DataTable nazw i IDataReader .

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

Parametry

dataTable
DataTable

Element DataTable do wypełnienia rekordami i, w razie potrzeby, schemat.

dataReader
IDataReader

Nazwa elementu IDataReader.

Zwraca

Liczba wierszy pomyślnie dodanych do lub odświeżonych w pliku DataTable. Nie obejmuje to wierszy, których dotyczą instrukcje, które nie zwracają wierszy.

Dotyczy

Fill(DataSet, String)

Źródło:
DbDataAdapter.cs
Źródło:
DbDataAdapter.cs
Źródło:
DbDataAdapter.cs

Dodaje lub odświeża wiersze w DataSet obiekcie w celu dopasowania ich do tych w źródle danych przy użyciu DataSet nazw i 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

Parametry

dataSet
DataSet

Element DataSet do wypełnienia rekordami i, w razie potrzeby, schemat.

srcTable
String

Nazwa tabeli źródłowej do użycia na potrzeby mapowania tabel.

Zwraca

Liczba wierszy pomyślnie dodanych do lub odświeżonych w pliku DataSet. Nie obejmuje to wierszy, których dotyczą instrukcje, które nie zwracają wierszy.

Wyjątki

Tabela źródłowa jest nieprawidłowa.

Przykłady

W poniższym przykładzie użyto klasy pochodnej , OleDbDataAdapteraby wypełnić wiersze DataSet z tabeli kategorii. W tym przykładzie założono, że utworzono obiekt OleDbDataAdapter i 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

Uwagi

Metoda Fill pobiera dane ze źródła danych przy użyciu instrukcji SELECT. Obiekt IDbConnection skojarzony z poleceniem select musi być prawidłowy, ale nie musi być otwarty. Jeśli element IDbConnection jest zamknięty przed Fill wywołaniem, zostanie otwarty w celu pobrania danych, a następnie zamknięty. Jeśli połączenie jest otwarte przed Fill wywołaniem, pozostaje otwarte.

Jeśli polecenie nie zwraca żadnych wierszy, żadne tabele nie są dodawane do DataSetelementu i nie są zgłaszane żadne wyjątki.

DbDataAdapter Jeśli obiekt napotka zduplikowane kolumny podczas wypełniania DataTableelementu , wygeneruje nazwy dla kolejnych kolumn przy użyciu wzorca "nazwa_kolumny1", "nazwa_kolumny2", "nazwa_kolumny3" itd. Jeśli dane przychodzące zawierają nienazwane kolumny, są one umieszczane w DataSet zależności od wzorca "Column1", "Column2" itd.

Gdy określone zapytanie zwraca wiele wyników, każdy zestaw wyników jest umieszczany w oddzielnej tabeli. Dodatkowe zestawy wyników są nazwane przez dołączenie wartości całkowitych do określonej nazwy tabeli (na przykład "Tabela", "Tabela1", "Tabela2" itd.). Ponieważ żadna tabela nie jest tworzona dla kwerendy, która nie zwraca wierszy, w przypadku przetwarzania zapytania wstawianego, a następnie zapytania wyboru, tabela utworzona dla kwerendy wybierania będzie miała nazwę "Tabela", ponieważ jest to pierwsza utworzona tabela. Jeśli aplikacja używa nazw kolumn i tabel, upewnij się, że nie występują konflikty z tymi wzorcami nazewnictwa.

Metoda Fill obsługuje scenariusze, w których DataSet obiekt zawiera wiele DataTable obiektów, których nazwy różnią się tylko wielkością liter. W takich sytuacjach wykonuje porównanie uwzględniające wielkość liter, aby znaleźć odpowiednią tabelę, i tworzy nową tabelę, Fill jeśli nie istnieje dokładne dopasowanie. Poniższy kod w języku C# ilustruje to zachowanie.

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

Jeśli Fill jest wywoływana DataSet i zawiera tylko jedną DataTable , której nazwa różni się tylko wielkością liter, DataTable jest to aktualizowane. W tym scenariuszu porównanie nie uwzględnia wielkości liter. Poniższy kod w języku C# ilustruje to zachowanie.

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.  

Jeśli wystąpił błąd lub wyjątek podczas wypełniania tabel danych, wiersze dodane przed wystąpieniem błędu pozostają w tabelach danych. Pozostała część operacji została przerwana.

Gdy instrukcja SELECT użyta do wypełnienia DataSet zwraca wiele wyników, takich jak instrukcja batch SQL, należy pamiętać o następujących kwestiach:

  • Jeśli jeden z wyników zawiera błąd, wszystkie kolejne wyniki zostaną pominięte i nie zostaną dodane do elementu DataSet.

W przypadku używania kolejnych Fill wywołań w celu odświeżenia zawartości DataSetobiektu muszą zostać spełnione dwa warunki:

  1. Instrukcja SQL powinna być zgodna z instrukcją użytą początkowo do wypełnienia elementu DataSet.

  2. Informacje o kolumnie Klucz muszą być obecne. Jeśli są obecne informacje o kluczu podstawowym, wszystkie zduplikowane wiersze są uzgadniane i pojawiają się tylko raz w obiekcie DataTable odpowiadającym DataSet. Informacje o kluczu podstawowym można ustawić za pomocą FillSchemametody , określając PrimaryKey właściwość DataTable, lub ustawiając MissingSchemaAction właściwość na AddWithKey.

SelectCommand Jeśli funkcja zwraca wyniki sprzężenia ZEWNĘTRZNEgo, DataAdapter parametr nie ustawia PrimaryKey wartości wynikowej DataTable. Należy jawnie zdefiniować klucz podstawowy, aby upewnić się, że zduplikowane wiersze są prawidłowo rozpoznawane. Aby uzyskać więcej informacji, zobacz Definiowanie kluczy podstawowych.

Uwaga

W przypadku obsługi instrukcji sql wsadowych, które zwracają wiele wyników, implementacja FillSchema dostawcy danych .NET Framework dla OLE DB pobiera informacje o schemacie tylko dla pierwszego wyniku. Aby pobrać informacje o schemacie dla wielu wyników, użyj polecenia Fill z zestawem MissingSchemaAction na wartość AddWithKey.

Uwagi dotyczące dziedziczenia

Podczas zastępowania Fill(DataSet) w klasie pochodnej należy wywołać metodę klasy bazowej Fill(DataSet) .

Zobacz też

Dotyczy

Fill(DataSet)

Źródło:
DbDataAdapter.cs
Źródło:
DbDataAdapter.cs
Źródło:
DbDataAdapter.cs

Dodaje lub odświeża wiersze w obiekcie 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

Parametry

dataSet
DataSet

Element DataSet do wypełnienia rekordami i, w razie potrzeby, schemat.

Zwraca

Liczba wierszy pomyślnie dodanych do lub odświeżonych w pliku DataSet. Nie obejmuje to wierszy, których dotyczą instrukcje, które nie zwracają wierszy.

Implementuje

Uwagi

Metoda Fill pobiera dane ze źródła danych przy użyciu instrukcji SELECT. Obiekt IDbConnection skojarzony z poleceniem select musi być prawidłowy, ale nie musi być otwarty. Jeśli element IDbConnection jest zamknięty przed Fill wywołaniem, zostanie otwarty w celu pobrania danych, a następnie zamknięty. Jeśli połączenie jest otwarte przed Fill wywołaniem, pozostaje otwarte.

Jeśli wystąpił błąd lub wyjątek podczas wypełniania tabel danych, wiersze dodane przed wystąpieniem błędu pozostają w tabelach danych. Pozostała część operacji została przerwana.

Jeśli polecenie nie zwraca żadnych wierszy, żadne tabele nie są dodawane do DataSetelementu i nie są zgłaszane żadne wyjątki.

DbDataAdapter Jeśli obiekt napotka zduplikowane kolumny podczas wypełniania DataTableelementu , generuje nazwy dla kolejnych kolumn przy użyciu wzorca "nazwa_kolumny1", "nazwa_kolumny2", "nazwa_kolumny3" itd. Jeśli dane przychodzące zawierają nienazwane kolumny, są one umieszczane w DataSet zależności od wzorca "Column1", "Column2" itd.

Gdy określone zapytanie zwraca wiele wyników, zestaw wyników dla każdego wiersza zwracającego zapytanie jest umieszczany w oddzielnej tabeli. Dodatkowe zestawy wyników są nazwane przez dołączenie wartości całkowitych do określonej nazwy tabeli (na przykład "Tabela", "Tabela1", "Tabela2" itd.). Ponieważ żadna tabela nie jest tworzona dla kwerendy, która nie zwraca wierszy, jeśli przetwarzasz zapytanie wstawiania, a następnie zapytanie wyboru, tabela utworzona dla kwerendy wyboru nosi nazwę "Tabela", ponieważ jest to pierwsza utworzona tabela. Jeśli aplikacja używa nazw kolumn i tabel, upewnij się, że nie występują konflikty z tymi wzorcami nazewnictwa.

Gdy instrukcja SELECT użyta do wypełnienia DataSet zwraca wiele wyników, takich jak instrukcje batch SQL, jeśli jeden z wyników zawiera błąd, wszystkie kolejne wyniki zostaną pominięte i nie zostaną dodane do .DataSet

W przypadku używania kolejnych Fill wywołań w celu odświeżenia zawartości DataSetobiektu muszą zostać spełnione dwa warunki:

  1. Instrukcja SQL powinna być zgodna z instrukcją użytą początkowo do wypełnienia elementu DataSet.

  2. Informacje o kolumnie Klucz muszą być obecne.

Jeśli są obecne informacje o kluczu podstawowym, wszystkie zduplikowane wiersze są uzgadniane i pojawiają się tylko raz w obiekcie DataTable odpowiadającym DataSet. Informacje o kluczu podstawowym można ustawić za pomocą FillSchemametody , określając PrimaryKey właściwość DataTable, lub ustawiając MissingSchemaAction właściwość na AddWithKey.

SelectCommand Jeśli funkcja zwraca wyniki sprzężenia ZEWNĘTRZNEgo, DataAdapter parametr nie ustawia PrimaryKey wartości wynikowej DataTable. Należy jawnie zdefiniować klucz podstawowy, aby upewnić się, że zduplikowane wiersze są prawidłowo rozpoznawane. Aby uzyskać więcej informacji, zobacz Definiowanie kluczy podstawowych.

Uwaga

W przypadku obsługi instrukcji sql wsadowych, które zwracają wiele wyników, implementacja FillSchema dostawcy danych .NET Framework dla OLE DB pobiera informacje o schemacie tylko dla pierwszego wyniku. Aby pobrać informacje o schemacie dla wielu wyników, użyj polecenia Fill z zestawem MissingSchemaAction na wartość AddWithKey.

Zobacz też

Dotyczy

Fill(DataTable, IDbCommand, CommandBehavior)

Źródło:
DbDataAdapter.cs
Źródło:
DbDataAdapter.cs
Źródło:
DbDataAdapter.cs

Dodaje lub odświeża wiersze w DataTable obiekcie w celu dopasowania ich do tych w źródle danych przy użyciu określonych DataTableelementów i IDbCommandCommandBehavior.

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

Parametry

dataTable
DataTable

Element DataTable do wypełnienia rekordami i, w razie potrzeby, schemat.

command
IDbCommand

Instrukcja SQL SELECT używana do pobierania wierszy ze źródła danych.

behavior
CommandBehavior

CommandBehavior Jedna z wartości.

Zwraca

Liczba wierszy pomyślnie dodanych do lub odświeżonych w pliku DataTable. Nie obejmuje to wierszy, których dotyczą instrukcje, które nie zwracają wierszy.

Uwagi

Metoda Fill pobiera wiersze ze źródła danych przy użyciu instrukcji SELECT określonej przez skojarzona SelectCommand właściwość. Obiekt połączenia skojarzony z instrukcją SELECT musi być prawidłowy, ale nie musi być otwarty. Jeśli połączenie zostanie zamknięte przed Fill wywołaniem, zostanie otwarte w celu pobrania danych, a następnie zamknięcia. Jeśli połączenie jest otwarte przed Fill wywołaniem, pozostaje otwarte.

Operacja Fill następnie dodaje wiersze do określonego obiektu docelowego DataTable w DataSetobiekcie , tworząc DataTable obiekt , jeśli jeszcze nie istnieje. Podczas tworzenia DataTable obiektu Fill operacja zwykle tworzy tylko metadane nazwy kolumny. Jeśli jednak właściwość jest ustawiona MissingSchemaAction na AddWithKey, tworzone są również odpowiednie klucze podstawowe i ograniczenia.

DbDataAdapter Jeśli obiekt napotka zduplikowane kolumny podczas wypełniania DataTableelementu , wygeneruje nazwy dla kolejnych kolumn przy użyciu wzorca "nazwakolumny1", "nazwa_kolumny2", "nazwa_kolumny3" itd. Jeśli dane przychodzące zawierają nienazwane kolumny, są one umieszczane w DataSet zależności od wzorca "Column1", "Column2" itd.

Przeciążenie elementu Fill , które przyjmuje DataTable jako parametr, uzyskuje tylko pierwszy wynik. Użyj przeciążenia Fill , które przyjmuje DataSet jako parametr, aby uzyskać wiele wyników.

Możesz użyć Fill metody wiele razy w tym samym DataTableobiekcie . Jeśli klucz podstawowy istnieje, przychodzące wiersze są scalane z pasującymi wierszami, które już istnieją. Jeśli klucz podstawowy nie istnieje, przychodzące wiersze są dołączane do elementu DataTable.

SelectCommand Jeśli funkcja zwraca wyniki sprzężenia ZEWNĘTRZNEgo, DataAdapter parametr nie ustawia PrimaryKey wartości wynikowej DataTable. Należy jawnie zdefiniować klucz podstawowy, aby upewnić się, że zduplikowane wiersze są prawidłowo rozpoznawane. Aby uzyskać więcej informacji, zobacz Definiowanie kluczy podstawowych.

Uwaga

W przypadku obsługi instrukcji sql wsadowych, które zwracają wiele wyników, implementacja FillSchema dostawcy danych .NET Framework dla OLE DB pobiera informacje o schemacie tylko dla pierwszego wyniku. Aby pobrać informacje o schemacie dla wielu wyników, użyj polecenia Fill z zestawem MissingSchemaAction na wartość AddWithKey.

Uwagi dotyczące dziedziczenia

To przeciążenie Fill(DataSet) metody jest chronione i jest przeznaczone do użycia przez dostawcę danych .NET Framework.

Zobacz też

Dotyczy