DataSet.CreateDataReader Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Returnerar en DataTableReader med en resultatuppsättning per DataTable, i samma sekvens som tabellerna visas i Tables samlingen.
Överlagringar
| Name | Description |
|---|---|
| CreateDataReader(DataTable[]) |
Returnerar en DataTableReader med en resultatuppsättning per DataTable. |
| CreateDataReader() |
Returnerar en DataTableReader med en resultatuppsättning per DataTable, i samma sekvens som tabellerna visas i Tables samlingen. |
Exempel
Det här exemplet, ett konsolprogram, skapar tre DataTable instanser och lägger till var och en i en DataSet. Exemplet anropar CreateDataReader metoden och visar innehållet i den returnerade DataTableReader. Observera att ordningen på resultatuppsättningarna DataTableReader i styrs av ordningen på de DataTable instanser som skickas som parametrar.
Note
Det här exemplet visar hur du använder en av de överlagrade versionerna av CreateDataReader. Andra exempel som kan vara tillgängliga finns i de enskilda överlagringsämnena.
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
Exemplet visar följande kod i konsolfönstret:
Kommentarer
För att säkerställa ordningen på resultatuppsättningarna i den returnerade DataTableReader, om en DataTable i DataSet är tom, representeras den av en tom resultatuppsättning inom den returnerade DataTableReader.
CreateDataReader(DataTable[])
Returnerar en DataTableReader med en resultatuppsättning per DataTable.
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
Parametrar
- dataTables
- DataTable[]
En matris med DataTables som anger ordningen på de resultatuppsättningar som ska returneras i DataTableReader.
Returer
En DataTableReader som innehåller en eller flera resultatuppsättningar som motsvarar de DataTable instanser som finns i källan DataSet. De returnerade resultatuppsättningarna är i den ordning som anges av parametern dataTables .
Exempel
Det här exemplet, ett konsolprogram, skapar tre DataTable instanser och lägger till var och en i en DataSet. Exemplet anropar CreateDataReader metoden och visar innehållet i den returnerade DataTableReader. Observera att ordningen på resultatuppsättningarna DataTableReader i styrs av ordningen på de DataTable instanser som skickas som parametrar. I exemplet visas resultatet i konsolfönstret.
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
Kommentarer
För att säkerställa att ordningen på resultatuppsättningarna i den returnerade DataTableReader, om en DataTable inom DataSet är tom, representeras den av en tom resultatuppsättning inom den returnerade DataTableReader. Eftersom den här överlagrade versionen gör att du kan ange en lista över DataTable instanser som parametrar kan du ange i vilken ordning resultatuppsättningarna ska visas i den returnerade DataTableReader.
Se även
Gäller för
CreateDataReader()
Returnerar en DataTableReader med en resultatuppsättning per DataTable, i samma sekvens som tabellerna visas i Tables samlingen.
public:
System::Data::DataTableReader ^ CreateDataReader();
public System.Data.DataTableReader CreateDataReader();
member this.CreateDataReader : unit -> System.Data.DataTableReader
Public Function CreateDataReader () As DataTableReader
Returer
En DataTableReader som innehåller en eller flera resultatuppsättningar som motsvarar de DataTable instanser som finns i källan DataSet.
Exempel
I följande exempel skapas tre DataTable instanser och var och en läggs till i en DataSet. Exemplet skickar sedan den ifyllda DataSet till en procedur som anropar CreateDataReader metoden och fortsätter att iterera genom alla resultatuppsättningar som finns i DataTableReader. I exemplet visas resultatet i konsolfönstret.
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
Kommentarer
För att säkerställa ordningen på resultatuppsättningarna i den returnerade DataTableReader, om en DataTable inom är DataSet tom, representeras den av en tom resultatuppsättning inom den returnerade DataTableReader.