IDataRecord Schnittstelle
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Bietet Zugriff auf die Spaltenwerte in jeder Zeile für eine DataReaderUnd wird von .NET-Datenanbietern implementiert, die auf relationale Datenbanken zugreifen.
public interface class IDataRecord
public interface IDataRecord
type IDataRecord = interface
Public Interface IDataRecord
- Abgeleitet
Beispiele
Im folgenden Beispiel werden Instanzen der abgeleiteten Klassen, SqlConnection, , SqlCommandund SqlDataReader. Im Beispiel werden die Daten gelesen und in die Konsole geschrieben. Schließlich wird das Beispiel geschlossen SqlDataReader, und dann die 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
Hinweise
Mit den IDataReader Schnittstellen kann IDataRecord eine geerbte Klasse implementiert werden DataReader . Dies bietet eine Möglichkeit, einen oder mehrere Vorwärtsdatenströme von Resultsets zu lesen. Weitere Informationen zu DataReader Klassen finden Sie unter Abrufen von Daten mithilfe eines DataReader.
Eine Anwendung erstellt keine Instanz der IDataRecord Schnittstelle direkt, sondern erstellt eine Instanz einer Klasse, die erbt IDataRecord. In der Regel rufen Sie dazu eine DataReader durch die ExecuteReader Methode des Command Objekts ab.
Klassen, die erben IDataRecord , müssen alle geerbten Member implementieren und in der Regel zusätzliche Member definieren, um anbieterspezifische Funktionen hinzuzufügen.
Anbieter, die eine DataReader Implementierung implementieren, sind erforderlich, um Daten in Common Language Runtime (CLR)-Typen verfügbar zu machen. Die Typkoersion wird für einige Typen definiert, die nicht in der CLR enthalten sind. Auf diese Werte kann als alternative Typen zugegriffen werden, die CLR-Typen entsprechen. In der folgenden Tabelle werden beispielsweise vorgeschlagene Zuordnungen von OLE DB-Datentypen zu CLR-Typen mit alternativen Typen in Klammern aufgelistet.
| OLE DB-Typ | CLR-Typ |
|---|---|
| DBTYPE_BOOL | Int16 |
| DBTYPE_BSTR | string |
| DBTYPE_BYTES | byte[] |
| DBTYPE_CY | Decimal |
| DBTYPE_DATE | DateTime |
| DBTYPE_DBDATE | DateTime |
| DBTYPE_DBTIME | DateTime |
| DBTYPE_DBTIMESTAMP | DateTime |
| DBTYPE_DECIMAL | Decimal |
| DBTYPE_EMPTY | null |
| DBTYPE_ERROR | ExterneAusnahme |
| DBTYPE_FILETIME | DateTime |
| DBTYPE_GUID | Leitfaden |
| DBTYPE_HCHAPTER | Nicht unterstützt |
| DBTYPE_I1 | SByte |
| DBTYPE_I2 | Int16 |
| DBTYPE_I4 | Int32 |
| DBTYPE_I8 | Int64 |
| DBTYPE_IDISPATCH | Objekt |
| DBTYPE_IUNKNOWN | Objekt |
| DBTYPE_NULL | DBNull.Value |
| DBTYPE_NUMERIC | Decimal |
| DBTYPE_PROPVARIANT | Objekt |
| DBTYPE_R4 | Ledig |
| DBTYPE_R8 | Double |
| DBTYPE_STR | string |
| DBTYPE_UDT | Nicht unterstützt |
| DBTYPE_UI1 | Byte (Int16) |
| DBTYPE_UI2 | UInt16 (Int32) |
| DBTYPE_UI4 | UInt32 (Int64) |
| DBTYPE_UI8 | UInt64 (Dezimal) |
| DBTYPE_VARIANT | Objekt |
| DBTYPE_VARNUMERIC | Nicht unterstützt |
| DBTYPE_WSTR | string |
Eigenschaften
| Name | Beschreibung |
|---|---|
| FieldCount |
Ruft die Anzahl der Spalten in der aktuellen Zeile ab. |
| Item[Int32] |
Ruft die Spalte ab, die sich am angegebenen Index befindet. |
| Item[String] |
Ruft die Spalte mit dem angegebenen Namen ab. |
Methoden
| Name | Beschreibung |
|---|---|
| GetBoolean(Int32) |
Ruft den Wert der angegebenen Spalte als booleschen Wert ab. |
| GetByte(Int32) |
Ruft den 8-Bit-ganzzahligen Wert der angegebenen Spalte ab. |
| GetBytes(Int32, Int64, Byte[], Int32, Int32) |
Liest einen Bytestrom aus dem angegebenen Spaltenoffset als Array, beginnend mit dem angegebenen Pufferoffset, in den Puffer. |
| GetChar(Int32) |
Ruft den Zeichenwert der angegebenen Spalte ab. |
| GetChars(Int32, Int64, Char[], Int32, Int32) |
Liest einen Datenstrom von Zeichen aus dem angegebenen Spaltenoffset in den Puffer als Array ab dem angegebenen Pufferoffset. |
| GetData(Int32) |
Gibt einen IDataReader Wert für die angegebene Spalten-Ordnungszahl zurück. |
| GetDataTypeName(Int32) |
Ruft die Datentypinformationen für das angegebene Feld ab. |
| GetDateTime(Int32) |
Ruft den Datums- und Uhrzeitdatenwert des angegebenen Felds ab. |
| GetDecimal(Int32) |
Ruft den numerischen Wert mit fester Position des angegebenen Felds ab. |
| GetDouble(Int32) |
Ruft die Gleitkommazahl mit doppelter Genauigkeit des angegebenen Felds ab. |
| GetFieldType(Int32) |
Ruft die Type Informationen ab, die dem Typ der Object zurückgegeben werden.GetValue(Int32) |
| GetFloat(Int32) |
Ruft die Gleitkommazahl mit einfacher Genauigkeit des angegebenen Felds ab. |
| GetGuid(Int32) |
Gibt den GUID-Wert des angegebenen Felds zurück. |
| GetInt16(Int32) |
Ruft den 16-Bit-ganzzahligen Wert des angegebenen Felds ab. |
| GetInt32(Int32) |
Ruft den ganzzahligen 32-Bit-Wert des angegebenen Felds ab. |
| GetInt64(Int32) |
Ruft den ganzzahligen 64-Bit-Wert des angegebenen Felds ab. |
| GetName(Int32) |
Ruft den Namen für das zu suchende Feld ab. |
| GetOrdinal(String) |
Gibt den Index des benannten Felds zurück. |
| GetString(Int32) |
Ruft den Zeichenfolgenwert des angegebenen Felds ab. |
| GetValue(Int32) |
Gibt den Wert des angegebenen Felds zurück. |
| GetValues(Object[]) |
Füllt ein Array von Objekten mit den Spaltenwerten des aktuellen Datensatzes auf. |
| IsDBNull(Int32) |
Gibt zurück, ob das angegebene Feld auf NULL festgelegt ist. |