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.
Ermöglicht Zugriff auf die Spaltenwerte in den einzelnen Zeilen für einen DataReader
, und 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 SqlDataReadererstellt. Im Beispiel werden die Daten gelesen und in die Konsole geschrieben. Schließlich schließt das Beispiel die 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
Die IDataReader Schnittstellen und IDataRecord ermöglichen es einer erbenden Klasse, eine DataReader
Klasse zu implementieren. 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 nicht direkt einen instance der IDataRecord Schnittstelle, sondern erstellt eine instance einer Klasse, die erbtIDataRecord. In der Regel erhalten Sie dazu eine DataReader
über die ExecuteReader
-Methode des Command
-Objekts.
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 einen DataReader
implementieren, sind erforderlich, um Daten in CLR-Typen (Common Language Runtime) verfügbar zu machen. Typkoercion 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 aufgeführt.
OLE DB-Typ | CLR-Typ |
---|---|
DBTYPE_BOOL | Int16 |
DBTYPE_BSTR | Zeichenfolge |
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 | ExternalException |
DBTYPE_FILETIME | Datetime |
DBTYPE_GUID | Guid |
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 | Single |
DBTYPE_R8 | Double |
DBTYPE_STR | Zeichenfolge |
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 | Zeichenfolge |
Eigenschaften
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
GetBoolean(Int32) |
Ruft den Wert der angegebenen Spalte als booleschen Wert ab. |
GetByte(Int32) |
Ruft den 8-Bit-Ganzzahlwert ohne Vorzeichen der angegebenen Spalte ab. |
GetBytes(Int32, Int64, Byte[], Int32, Int32) |
Liest einen Datenstrom aus dem angegebenen Spaltenoffset als Array in den Puffer, beginnend am angegebenen Pufferoffset. |
GetChar(Int32) |
Ruft den Zeichenwert der angegebenen Spalte ab. |
GetChars(Int32, Int64, Char[], Int32, Int32) |
Liest einen Zeichendatenstrom aus dem angegebenen Spaltenoffset als Array in den Puffer, beginnend am angegebenen Pufferoffset. |
GetData(Int32) |
Gibt einen IDataReader für die angegebene Spaltenordnungszahl zurück. |
GetDataTypeName(Int32) |
Ruft die Datentypinformationen für das angegebene Feld ab. |
GetDateTime(Int32) |
Ruft das Datum und die Uhrzeit des angegebenen Felds ab. |
GetDecimal(Int32) |
Ruft den an fester Position befindlichen numerischen Wert des angegebenen Felds ab. |
GetDouble(Int32) |
Ruft den Wert des angegebenen Felds als Gleitkommazahl mit doppelter Genauigkeit ab. |
GetFieldType(Int32) |
Ruft die Type-Informationen entsprechend dem Typ von Object ab, die von GetValue(Int32) zurückgegeben würden. |
GetFloat(Int32) |
Ruft den Wert des angegebenen Felds als Gleitkommazahl mit einfacher Genauigkeit ab. |
GetGuid(Int32) |
Gibt den GUID-Wert des angegebenen Felds zurück. |
GetInt16(Int32) |
Ruft den 16-Bit-Ganzzahlwert mit Vorzeichen des angegebenen Felds ab. |
GetInt32(Int32) |
Ruft den 32-Bit-Ganzzahl-mit-Vorzeichen-Wert des angegebenen Felds ab. |
GetInt64(Int32) |
Ruft den 64-Bit-Ganzzahlwert mit Vorzeichen des angegebenen Felds ab. |
GetName(Int32) |
Ruft den Namen des zu suchenden Felds 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. |
IsDBNull(Int32) |
Gibt zurück, ob das angegebene Feld auf NULL festgelegt ist. |