IDataReader Rozhraní
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Poskytuje způsob čtení jednoho nebo více datových proudů jen pro předávání sad výsledků získaných spuštěním příkazu ve zdroji dat a je implementován poskytovateli dat .NET, kteří přistupují k relačním databázím.
public interface class IDataReader : IDisposable, System::Data::IDataRecord
public interface IDataReader : IDisposable, System.Data.IDataRecord
type IDataReader = interface
interface IDataRecord
interface IDisposable
type IDataReader = interface
interface IDisposable
interface IDataRecord
Public Interface IDataReader
Implements IDataRecord, IDisposable
- Odvozené
- Implementuje
Příklady
Následující příklad vytvoří instance odvozených tříd, SqlConnection, SqlCommand, a SqlDataReader. Příklad čte data a zapíše je do konzoly. Nakonec příklad zavře SqlDataReader, a pak SqlConnection.
private static void ReadOrderData(string connectionString)
{
string queryString =
"SELECT OrderID, CustomerID FROM dbo.Orders;";
using (SqlConnection connection =
new SqlConnection(connectionString))
{
SqlCommand command =
new SqlCommand(queryString, connection);
connection.Open();
SqlDataReader reader = command.ExecuteReader();
// Call Read before accessing data.
while (reader.Read())
{
ReadSingleRow((IDataRecord)reader);
}
// Call Close when done reading.
reader.Close();
}
}
private static void ReadSingleRow(IDataRecord dataRecord)
{
Console.WriteLine(String.Format("{0}, {1}", dataRecord[0], dataRecord[1]));
}
Private Sub ReadOrderData(ByVal connectionString As String)
Dim queryString As String = _
"SELECT OrderID, CustomerID FROM dbo.Orders;"
Using connection As New SqlConnection(connectionString)
Dim command As New SqlCommand(queryString, connection)
connection.Open()
Dim reader As SqlDataReader = command.ExecuteReader()
' Call Read before accessing data.
While reader.Read()
ReadSingleRow(CType(reader, IDataRecord))
End While
' Call Close when done reading.
reader.Close()
End Using
End Sub
Private Sub ReadSingleRow(ByVal record As IDataRecord)
Console.WriteLine(String.Format("{0}, {1}", record(0), record(1)))
End Sub
Poznámky
IDataReader Rozhraní IDataRecord umožňují zděděné třídě implementovat DataReader třídu, která poskytuje způsob čtení jednoho nebo více datových proudů jen pro předávání sad výsledků. Další informace o DataReader třídách naleznete v tématu Načítání dat pomocí třídy DataReader.
Aplikace nevytvoří instanci IDataReader rozhraní přímo, ale vytvoří instanci třídy, která dědí IDataReader.
Třídy, které dědí, musí implementovat zděděné IDataReader členy a obvykle definují další členy pro přidání funkcí specifických pro zprostředkovatele.
Změny provedené v sadě výsledků jiným procesem nebo vláknem při čtení dat mohou být viditelné pro uživatele třídy, která implementuje IDataReader. Přesné chování je však závislé na poskytovateli i načasování.
Poznámky pro implementátory
Pokud chcete zvýšit konzistenci mezi zprostředkovateli dat .NET Framework, pojmenujte dědící třídu ve formuláři Prv Command, kde Prv je stejná předpona udělená všem třídám v konkrétním oboru názvů zprostředkovatele dat .NET Framework. Například Sql je předpona SqlDataAdapter třídy v System.Data.SqlClient oboru názvů.
Uživatelé nevytvoří instanci DataReader třídy přímo. Místo toho získávají DataReader instanci prostřednictvím ExecuteReader metody objektu Command . Proto byste měli konstruktory označit DataReader jako interní.
Vlastnosti
| Name | Description |
|---|---|
| Depth |
Získá hodnotu označující hloubku vnoření pro aktuální řádek. |
| FieldCount |
Získá počet sloupců v aktuálním řádku. (Zděděno od IDataRecord) |
| IsClosed |
Získá hodnotu určující, zda je čtečka dat uzavřena. |
| Item[Int32] |
Získá sloupec umístěný v zadaném indexu. (Zděděno od IDataRecord) |
| Item[String] |
Získá sloupec se zadaným názvem. (Zděděno od IDataRecord) |
| RecordsAffected |
Získá počet řádků změněné, vložené nebo odstraněné spuštěním příkazu SQL. |
Metody
| Name | Description |
|---|---|
| Close() |
IDataReader Zavře objekt. |
| Dispose() |
Provádí úlohy definované aplikací související s uvolněním, uvolněním nebo resetováním nespravovaných prostředků. (Zděděno od IDisposable) |
| GetBoolean(Int32) |
Získá hodnotu zadaného sloupce jako logickou hodnotu. (Zděděno od IDataRecord) |
| GetByte(Int32) |
Získá 8bitovou celočíselnou hodnotu bez znaménka zadaného sloupce. (Zděděno od IDataRecord) |
| GetBytes(Int32, Int64, Byte[], Int32, Int32) |
Načte datový proud bajtů ze zadaného posunu sloupce do vyrovnávací paměti jako pole počínaje daným posunem vyrovnávací paměti. (Zděděno od IDataRecord) |
| GetChar(Int32) |
Získá hodnotu znaku zadaného sloupce. (Zděděno od IDataRecord) |
| GetChars(Int32, Int64, Char[], Int32, Int32) |
Načte datový proud znaků ze zadaného posunu sloupce do vyrovnávací paměti jako pole počínaje daným posunem vyrovnávací paměti. (Zděděno od IDataRecord) |
| GetData(Int32) |
IDataReader Vrátí pro zadaný sloupec pořadový řádek. (Zděděno od IDataRecord) |
| GetDataTypeName(Int32) |
Získá informace o datovém typu pro zadané pole. (Zděděno od IDataRecord) |
| GetDateTime(Int32) |
Získá datová hodnota data a času zadaného pole. (Zděděno od IDataRecord) |
| GetDecimal(Int32) |
Získá číselnou hodnotu pevné pozice zadaného pole. (Zděděno od IDataRecord) |
| GetDouble(Int32) |
Získá číslo s plovoucí desetinnou čárkou s dvojitou přesností zadaného pole. (Zděděno od IDataRecord) |
| GetFieldType(Int32) |
Type Získá informace odpovídající typuObject, který by byl vrácen z GetValue(Int32). (Zděděno od IDataRecord) |
| GetFloat(Int32) |
Získá číslo s plovoucí desetinnou čárkou s jednoduchou přesností zadaného pole. (Zděděno od IDataRecord) |
| GetGuid(Int32) |
Vrátí hodnotu GUID zadaného pole. (Zděděno od IDataRecord) |
| GetInt16(Int32) |
Získá 16bitovou celočíselnou hodnotu zadaného pole. (Zděděno od IDataRecord) |
| GetInt32(Int32) |
Získá 32bitovou celočíselnou hodnotu zadaného pole. (Zděděno od IDataRecord) |
| GetInt64(Int32) |
Získá 64bitovou celočíselnou hodnotu zadaného pole. (Zděděno od IDataRecord) |
| GetName(Int32) |
Získá název pole, které chcete najít. (Zděděno od IDataRecord) |
| GetOrdinal(String) |
Vrátí index pojmenovaného pole. (Zděděno od IDataRecord) |
| GetSchemaTable() |
Vrátí hodnotu DataTable , která popisuje metadata IDataReadersloupce . Vrátí |
| GetString(Int32) |
Získá řetězcovou hodnotu zadaného pole. (Zděděno od IDataRecord) |
| GetValue(Int32) |
Vrátí hodnotu zadaného pole. (Zděděno od IDataRecord) |
| GetValues(Object[]) |
Naplní pole objektů hodnotami sloupce aktuálního záznamu. (Zděděno od IDataRecord) |
| IsDBNull(Int32) |
Vrátí, zda je zadané pole nastaveno na hodnotu null. (Zděděno od IDataRecord) |
| NextResult() |
Při čtení výsledků dávkových příkazů SQL přejde čtečka dat na další výsledek. |
| Read() |
Přejde na IDataReader další záznam. |