DataSet.CreateDataReader Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Zwraca element z jednym zestawem DataTableReader wyników na DataTable, w tej samej sekwencji co tabele wyświetlane w kolekcji Tables .
Przeciążenia
CreateDataReader(DataTable[]) |
Zwraca obiekt z jednym zestawem DataTableReader wyników na DataTablewartość . |
CreateDataReader() |
Zwraca element z jednym zestawem DataTableReader wyników na DataTable, w tej samej sekwencji co tabele wyświetlane w kolekcji Tables . |
Przykłady
W tym przykładzie aplikacja konsolowa tworzy trzy DataTable wystąpienia i dodaje je do klasy DataSet. Przykład wywołuje metodę CreateDataReader i wyświetla zawartość zwróconego obiektu DataTableReader. Należy pamiętać, że kolejność zestawów wyników w obiekcie DataTableReader
jest kontrolowana przez kolejność DataTable
wystąpień przekazywanych jako parametry.
Uwaga
W tym przykładzie pokazano, jak używać jednej z przeciążonych wersji programu CreateDataReader
. Inne przykłady, które mogą być dostępne, można znaleźć w poszczególnych tematach przeciążenia.
static DataTable customerTable;
static DataTable productTable;
static DataTable emptyTable;
static void Main()
{
DataSet dataSet = new DataSet();
// Add some DataTables to the DataSet, including
// an empty DataTable:
emptyTable = new DataTable();
productTable = GetProducts();
customerTable = GetCustomers();
dataSet.Tables.Add(customerTable);
dataSet.Tables.Add(emptyTable);
dataSet.Tables.Add(productTable);
TestCreateDataReader(dataSet);
Console.WriteLine("Press any key to continue.");
Console.ReadKey();
}
private static void TestCreateDataReader(DataSet dataSet)
{
// Given a DataSet, retrieve a DataTableReader
// allowing access to all the DataSet's data.
// Even though the dataset contains three DataTables,
// this code will only display the contents of two of them,
// because the code has limited the results to the
// DataTables stored in the tables array. Because this
// parameter is declared using the ParamArray keyword,
// you could also include a list of DataTable instances
// individually, as opposed to supplying an array of
// DataTables, as in this example:
using (DataTableReader reader =
dataSet.CreateDataReader(productTable, emptyTable))
{
do
{
if (!reader.HasRows)
{
Console.WriteLine("Empty DataTableReader");
}
else
{
PrintColumns(reader);
}
Console.WriteLine("========================");
} while (reader.NextResult());
}
}
private static DataTable GetCustomers()
{
// Create sample Customers table, in order
// to demonstrate the behavior of the DataTableReader.
DataTable table = new DataTable();
// Create two columns, ID and Name.
DataColumn idColumn = table.Columns.Add("ID", typeof(int));
table.Columns.Add("Name", typeof(string));
// Set the ID column as the primary key column.
table.PrimaryKey = new DataColumn[] { idColumn };
table.Rows.Add(new object[] { 1, "Mary" });
table.Rows.Add(new object[] { 2, "Andy" });
table.Rows.Add(new object[] { 3, "Peter" });
table.Rows.Add(new object[] { 4, "Russ" });
table.AcceptChanges();
return table;
}
private static DataTable GetProducts()
{
// Create sample Products table, in order
// to demonstrate the behavior of the DataTableReader.
DataTable table = new DataTable();
// Create two columns, ID and Name.
DataColumn idColumn = table.Columns.Add("ID", typeof(int));
table.Columns.Add("Name", typeof(string));
// Set the ID column as the primary key column.
table.PrimaryKey = new DataColumn[] { idColumn };
table.Rows.Add(new object[] { 1, "Wireless Network Card" });
table.Rows.Add(new object[] { 2, "Hard Drive" });
table.Rows.Add(new object[] { 3, "Monitor" });
table.Rows.Add(new object[] { 4, "CPU" });
table.AcceptChanges();
return table;
}
private static void PrintColumns(DataTableReader reader)
{
// Loop through all the rows in the DataTableReader
while (reader.Read())
{
for (int i = 0; i < reader.FieldCount; i++)
{
Console.Write(reader[i] + " ");
}
Console.WriteLine();
}
}
Private emptyTable As DataTable
Private customerTable As DataTable
Private productTable As DataTable
Sub Main()
Dim dataSet As New DataSet
' Add some DataTables to the DataSet, including
' an empty DataTable:
emptyTable = New DataTable()
productTable = GetProducts()
customerTable = GetCustomers()
dataSet.Tables.Add(customerTable)
dataSet.Tables.Add(emptyTable)
dataSet.Tables.Add(productTable)
TestCreateDataReader(dataSet)
Console.WriteLine("Press any key to continue.")
Console.ReadKey()
End Sub
Private Sub TestCreateDataReader(ByVal dataSet As DataSet)
' Given a DataSet, retrieve a DataTableReader
' allowing access to all the DataSet's data.
' Even though the dataset contains three DataTables,
' this code will only display the contents of two of them,
' because the code has limited the results to the
' DataTables stored in the tables array. Because this
' parameter is declared using the ParamArray keyword,
' you could also include a list of DataTable instances
' individually, as opposed to supplying an array of
' DataTables, as in this example:
Using reader As DataTableReader = _
dataSet.CreateDataReader(productTable, emptyTable)
Do
If Not reader.HasRows Then
Console.WriteLine("Empty DataTableReader")
Else
PrintColumns(reader)
End If
Console.WriteLine("========================")
Loop While reader.NextResult()
End Using
End Sub
Private Function GetCustomers() As DataTable
' Create sample Customers table, in order
' to demonstrate the behavior of the DataTableReader.
Dim table As New DataTable
' Create two columns, ID and Name.
Dim idColumn As DataColumn = table.Columns.Add("ID", GetType(Integer))
table.Columns.Add("Name", GetType(String))
' Set the ID column as the primary key column.
table.PrimaryKey = New DataColumn() {idColumn}
table.Rows.Add(New Object() {1, "Mary"})
table.Rows.Add(New Object() {2, "Andy"})
table.Rows.Add(New Object() {3, "Peter"})
table.Rows.Add(New Object() {4, "Russ"})
table.AcceptChanges()
Return table
End Function
Private Function GetProducts() As DataTable
' Create sample Products table, in order
' to demonstrate the behavior of the DataTableReader.
Dim table As New DataTable
' Create two columns, ID and Name.
Dim idColumn As DataColumn = table.Columns.Add("ID", GetType(Integer))
table.Columns.Add("Name", GetType(String))
' Set the ID column as the primary key column.
table.PrimaryKey = New DataColumn() {idColumn}
table.Rows.Add(New Object() {1, "Wireless Network Card"})
table.Rows.Add(New Object() {2, "Hard Drive"})
table.Rows.Add(New Object() {3, "Monitor"})
table.Rows.Add(New Object() {4, "CPU"})
table.AcceptChanges()
Return table
End Function
Private Sub PrintColumns( _
ByVal reader As DataTableReader)
' Loop through all the rows in the DataTableReader.
Do While reader.Read()
For i As Integer = 0 To reader.FieldCount - 1
Console.Write(reader(i).ToString() & " ")
Next
Console.WriteLine()
Loop
End Sub
W przykładzie zostanie wyświetlony następujący kod w oknie Konsola:
Uwagi
Aby zapewnić kolejność zestawów wyników w zwróconym DataTableReaderobiekcie , jeśli element DataTable w obiekcie DataSet jest pusty, będzie reprezentowany przez pusty zestaw wyników w zwróconym elemecie DataTableReader
.
CreateDataReader(DataTable[])
- Źródło:
- DataSet.cs
- Źródło:
- DataSet.cs
- Źródło:
- DataSet.cs
Zwraca obiekt z jednym zestawem DataTableReader wyników na DataTablewartość .
public:
System::Data::DataTableReader ^ CreateDataReader(... cli::array <System::Data::DataTable ^> ^ dataTables);
public System.Data.DataTableReader CreateDataReader (params System.Data.DataTable[] dataTables);
member this.CreateDataReader : System.Data.DataTable[] -> System.Data.DataTableReader
Public Function CreateDataReader (ParamArray dataTables As DataTable()) As DataTableReader
Parametry
- dataTables
- DataTable[]
Tablica tabeli DataTables zapewniająca kolejność zestawów wyników, które mają być zwracane w obiekcie DataTableReader.
Zwraca
Element DataTableReader zawierający co najmniej jeden zestaw wyników odpowiadający DataTable wystąpieniom zawartym w źródle DataSet. Zwrócone zestawy wyników są w kolejności określonej przez dataTables
parametr .
Przykłady
W tym przykładzie aplikacja konsolowa tworzy trzy DataTable wystąpienia i dodaje je do klasy DataSet. Przykład wywołuje metodę CreateDataReader i wyświetla zawartość zwróconego obiektu DataTableReader. Należy pamiętać, że kolejność zestawów wyników w obiekcie DataTableReader
jest kontrolowana przez kolejność DataTable
wystąpień przekazywanych jako parametry. W przykładzie zostaną wyświetlone wyniki w oknie Konsola.
static DataTable customerTable;
static DataTable productTable;
static DataTable emptyTable;
static void Main()
{
DataSet dataSet = new DataSet();
// Add some DataTables to the DataSet, including
// an empty DataTable:
emptyTable = new DataTable();
productTable = GetProducts();
customerTable = GetCustomers();
dataSet.Tables.Add(customerTable);
dataSet.Tables.Add(emptyTable);
dataSet.Tables.Add(productTable);
TestCreateDataReader(dataSet);
Console.WriteLine("Press any key to continue.");
Console.ReadKey();
}
private static void TestCreateDataReader(DataSet dataSet)
{
// Given a DataSet, retrieve a DataTableReader
// allowing access to all the DataSet's data.
// Even though the dataset contains three DataTables,
// this code will only display the contents of two of them,
// because the code has limited the results to the
// DataTables stored in the tables array. Because this
// parameter is declared using the ParamArray keyword,
// you could also include a list of DataTable instances
// individually, as opposed to supplying an array of
// DataTables, as in this example:
using (DataTableReader reader =
dataSet.CreateDataReader(productTable, emptyTable))
{
do
{
if (!reader.HasRows)
{
Console.WriteLine("Empty DataTableReader");
}
else
{
PrintColumns(reader);
}
Console.WriteLine("========================");
} while (reader.NextResult());
}
}
private static DataTable GetCustomers()
{
// Create sample Customers table, in order
// to demonstrate the behavior of the DataTableReader.
DataTable table = new DataTable();
// Create two columns, ID and Name.
DataColumn idColumn = table.Columns.Add("ID", typeof(int));
table.Columns.Add("Name", typeof(string));
// Set the ID column as the primary key column.
table.PrimaryKey = new DataColumn[] { idColumn };
table.Rows.Add(new object[] { 1, "Mary" });
table.Rows.Add(new object[] { 2, "Andy" });
table.Rows.Add(new object[] { 3, "Peter" });
table.Rows.Add(new object[] { 4, "Russ" });
return table;
}
private static DataTable GetProducts()
{
// Create sample Products table, in order
// to demonstrate the behavior of the DataTableReader.
DataTable table = new DataTable();
// Create two columns, ID and Name.
DataColumn idColumn = table.Columns.Add("ID", typeof(int));
table.Columns.Add("Name", typeof(string));
// Set the ID column as the primary key column.
table.PrimaryKey = new DataColumn[] { idColumn };
table.Rows.Add(new object[] { 1, "Wireless Network Card" });
table.Rows.Add(new object[] { 2, "Hard Drive" });
table.Rows.Add(new object[] { 3, "Monitor" });
table.Rows.Add(new object[] { 4, "CPU" });
return table;
}
private static void PrintColumns(DataTableReader reader)
{
// Loop through all the rows in the DataTableReader
while (reader.Read())
{
for (int i = 0; i < reader.FieldCount; i++)
{
Console.Write(reader[i] + " ");
}
Console.WriteLine();
}
}
Private emptyTable As DataTable
Private customerTable As DataTable
Private productTable As DataTable
Sub Main()
Dim dataSet As New DataSet
' Add some DataTables to the DataSet, including
' an empty DataTable:
emptyTable = New DataTable()
productTable = GetProducts()
customerTable = GetCustomers()
dataSet.Tables.Add(customerTable)
dataSet.Tables.Add(emptyTable)
dataSet.Tables.Add(productTable)
TestCreateDataReader(dataSet)
Console.WriteLine("Press any key to continue.")
Console.ReadKey()
End Sub
Private Sub TestCreateDataReader(ByVal dataSet As DataSet)
' Given a DataSet, retrieve a DataTableReader
' allowing access to all the DataSet's data.
' Even though the dataset contains three DataTables,
' this code will only display the contents of two of them,
' because the code has limited the results to the
' DataTables stored in the tables array. Because this
' parameter is declared using the ParamArray keyword,
' you could also include a list of DataTable instances
' individually, as opposed to supplying an array of
' DataTables, as in this example:
Using reader As DataTableReader = _
dataSet.CreateDataReader(productTable, emptyTable)
Do
If Not reader.HasRows Then
Console.WriteLine("Empty DataTableReader")
Else
PrintColumns(reader)
End If
Console.WriteLine("========================")
Loop While reader.NextResult()
End Using
End Sub
Private Function GetCustomers() As DataTable
' Create sample Customers table, in order
' to demonstrate the behavior of the DataTableReader.
Dim table As New DataTable
' Create two columns, ID and Name.
Dim idColumn As DataColumn = table.Columns.Add("ID", GetType(Integer))
table.Columns.Add("Name", GetType(String))
' Set the ID column as the primary key column.
table.PrimaryKey = New DataColumn() {idColumn}
table.Rows.Add(New Object() {1, "Mary"})
table.Rows.Add(New Object() {2, "Andy"})
table.Rows.Add(New Object() {3, "Peter"})
table.Rows.Add(New Object() {4, "Russ"})
Return table
End Function
Private Function GetProducts() As DataTable
' Create sample Products table, in order
' to demonstrate the behavior of the DataTableReader.
Dim table As New DataTable
' Create two columns, ID and Name.
Dim idColumn As DataColumn = table.Columns.Add("ID", GetType(Integer))
table.Columns.Add("Name", GetType(String))
' Set the ID column as the primary key column.
table.PrimaryKey = New DataColumn() {idColumn}
table.Rows.Add(New Object() {1, "Wireless Network Card"})
table.Rows.Add(New Object() {2, "Hard Drive"})
table.Rows.Add(New Object() {3, "Monitor"})
table.Rows.Add(New Object() {4, "CPU"})
Return table
End Function
Private Sub PrintColumns( _
ByVal reader As DataTableReader)
' Loop through all the rows in the DataTableReader.
Do While reader.Read()
For i As Integer = 0 To reader.FieldCount - 1
Console.Write(reader(i).ToString() & " ")
Next
Console.WriteLine()
Loop
End Sub
Uwagi
Aby upewnić się, że kolejność zestawów wyników w zwróconym DataTableReaderobiekcie , jeśli element DataTable w obiekcie DataSet jest pusty, jest reprezentowany przez pusty zestaw wyników w zwróconym elemecie DataTableReader
. Ponieważ ta przeciążona wersja umożliwia podanie listy DataTable
wystąpień jako parametrów, można określić kolejność wyświetlania zestawów wyników w zwracanym elemecie DataTableReader
.
Zobacz też
Dotyczy
CreateDataReader()
- Źródło:
- DataSet.cs
- Źródło:
- DataSet.cs
- Źródło:
- DataSet.cs
Zwraca element z jednym zestawem DataTableReader wyników na DataTable, w tej samej sekwencji co tabele wyświetlane w kolekcji Tables .
public:
System::Data::DataTableReader ^ CreateDataReader();
public System.Data.DataTableReader CreateDataReader ();
member this.CreateDataReader : unit -> System.Data.DataTableReader
Public Function CreateDataReader () As DataTableReader
Zwraca
Element DataTableReader zawierający co najmniej jeden zestaw wyników odpowiadający DataTable wystąpieniom zawartym w źródle DataSet.
Przykłady
Poniższy przykład tworzy trzy DataTable wystąpienia i dodaje je do klasy DataSet. Następnie przykład przekazuje wypełniony kod DataSet
do procedury wywołującej CreateDataReader metodę i przechodzi do iteracji wszystkich zestawów wyników zawartych w obiekcie DataTableReader. W przykładzie zostaną wyświetlone wyniki w oknie Konsola.
static void Main()
{
DataSet dataSet = new DataSet();
// Add some DataTables to the DataSet, including
// an empty DataTable:
dataSet.Tables.Add(GetCustomers());
dataSet.Tables.Add(new DataTable());
dataSet.Tables.Add(GetProducts());
TestCreateDataReader(dataSet);
Console.WriteLine("Press any key to continue.");
Console.ReadKey();
}
private static void TestCreateDataReader(DataSet dataSet)
{
// Given a DataSet, retrieve a DataTableReader
// allowing access to all the DataSet's data:
using (DataTableReader reader = dataSet.CreateDataReader())
{
do
{
if (!reader.HasRows)
{
Console.WriteLine("Empty DataTableReader");
}
else
{
PrintColumns(reader);
}
Console.WriteLine("========================");
} while (reader.NextResult());
}
}
private static DataTable GetCustomers()
{
// Create sample Customers table, in order
// to demonstrate the behavior of the DataTableReader.
DataTable table = new DataTable();
// Create two columns, ID and Name.
DataColumn idColumn = table.Columns.Add("ID", typeof(int));
table.Columns.Add("Name", typeof(string));
// Set the ID column as the primary key column.
table.PrimaryKey = new DataColumn[] { idColumn };
table.Rows.Add(new object[] { 1, "Mary" });
table.Rows.Add(new object[] { 2, "Andy" });
table.Rows.Add(new object[] { 3, "Peter" });
table.Rows.Add(new object[] { 4, "Russ" });
return table;
}
private static DataTable GetProducts()
{
// Create sample Products table, in order
// to demonstrate the behavior of the DataTableReader.
DataTable table = new DataTable();
// Create two columns, ID and Name.
DataColumn idColumn = table.Columns.Add("ID", typeof(int));
table.Columns.Add("Name", typeof(string));
// Set the ID column as the primary key column.
table.PrimaryKey = new DataColumn[] { idColumn };
table.Rows.Add(new object[] { 1, "Wireless Network Card" });
table.Rows.Add(new object[] { 2, "Hard Drive" });
table.Rows.Add(new object[] { 3, "Monitor" });
table.Rows.Add(new object[] { 4, "CPU" });
return table;
}
private static void PrintColumns(DataTableReader reader)
{
// Loop through all the rows in the DataTableReader
while (reader.Read())
{
for (int i = 0; i < reader.FieldCount; i++)
{
Console.Write(reader[i] + " ");
}
Console.WriteLine();
}
}
Sub Main()
Dim dataSet As New DataSet
' Add some DataTables to the DataSet, including
' an empty DataTable:
dataSet.Tables.Add(GetCustomers())
dataSet.Tables.Add(New DataTable())
dataSet.Tables.Add(GetProducts())
TestCreateDataReader(dataSet)
Console.WriteLine("Press any key to continue.")
Console.ReadKey()
End Sub
Private Sub TestCreateDataReader(ByVal dataSet As DataSet)
' Given a DataSet, retrieve a DataTableReader
' allowing access to all the DataSet's data:
Using reader As DataTableReader = dataSet.CreateDataReader()
Do
If Not reader.HasRows Then
Console.WriteLine("Empty DataTableReader")
Else
PrintColumns(reader)
End If
Console.WriteLine("========================")
Loop While reader.NextResult()
End Using
End Sub
Private Function GetCustomers() As DataTable
' Create sample Customers table, in order
' to demonstrate the behavior of the DataTableReader.
Dim table As New DataTable
' Create two columns, ID and Name.
Dim idColumn As DataColumn = table.Columns.Add("ID", GetType(Integer))
table.Columns.Add("Name", GetType(String))
' Set the ID column as the primary key column.
table.PrimaryKey = New DataColumn() {idColumn}
table.Rows.Add(New Object() {1, "Mary"})
table.Rows.Add(New Object() {2, "Andy"})
table.Rows.Add(New Object() {3, "Peter"})
table.Rows.Add(New Object() {4, "Russ"})
Return table
End Function
Private Function GetProducts() As DataTable
' Create sample Products table, in order
' to demonstrate the behavior of the DataTableReader.
Dim table As New DataTable
' Create two columns, ID and Name.
Dim idColumn As DataColumn = table.Columns.Add("ID", GetType(Integer))
table.Columns.Add("Name", GetType(String))
' Set the ID column as the primary key column.
table.PrimaryKey = New DataColumn() {idColumn}
table.Rows.Add(New Object() {1, "Wireless Network Card"})
table.Rows.Add(New Object() {2, "Hard Drive"})
table.Rows.Add(New Object() {3, "Monitor"})
table.Rows.Add(New Object() {4, "CPU"})
Return table
End Function
Private Sub PrintColumns( _
ByVal reader As DataTableReader)
' Loop through all the rows in the DataTableReader.
Do While reader.Read()
For i As Integer = 0 To reader.FieldCount - 1
Console.Write(reader(i).ToString() & " ")
Next
Console.WriteLine()
Loop
End Sub
Uwagi
Aby upewnić się, że kolejność zestawów wyników w zwróconym DataTableReaderobiekcie , jeśli element DataTable w obiekcie DataSet jest pusty, jest reprezentowany przez pusty zestaw wyników w zwróconym elemecie DataTableReader
.