IDataRecord Interface
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Biedt toegang tot de kolomwaarden binnen elke rij voor een DataReader en wordt geïmplementeerd door .NET gegevensproviders die toegang hebben tot relationele databases.
public interface class IDataRecord
public interface IDataRecord
type IDataRecord = interface
Public Interface IDataRecord
- Afgeleid
Voorbeelden
In het volgende voorbeeld worden exemplaren van de afgeleide klassen, SqlConnection, SqlCommanden SqlDataReader. In het voorbeeld worden de gegevens gelezen en naar de console geschreven. Ten slotte sluit het voorbeeld de SqlDataReader, en vervolgens de 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
Opmerkingen
Met de IDataReader en IDataRecord interfaces kan een overnemende klasse een DataReader klasse implementeren. Dit biedt een manier om een of meer doorstuurstreams met resultatensets te lezen. Zie Gegevens ophalen met behulp van een DataReader voor meer informatie over DataReader klassen.
Een toepassing maakt geen exemplaar van de IDataRecord interface rechtstreeks, maar maakt een exemplaar van een klasse die wordt overgenomen IDataRecord. Normaal gesproken doet u dit door een DataReader via de ExecuteReader methode van het Command object te verkrijgen.
Klassen die overnemen IDataRecord , moeten alle overgenomen leden implementeren en definiëren doorgaans aanvullende leden om providerspecifieke functionaliteit toe te voegen.
Providers die een DataReader implementatie uitvoeren, zijn vereist om gegevens beschikbaar te maken in CLR-typen (Common Language Runtime). Type coercion is gedefinieerd voor sommige typen die niet zijn opgenomen in de CLR. Deze waarden kunnen worden geopend als alternatieve typen die voldoen aan CLR-typen. In de volgende tabel ziet u bijvoorbeeld voorgestelde toewijzingen van OLE DB-gegevenstypen aan CLR-typen, met alternatieve typen haakjes.
| OLE DB-type | CLR-type |
|---|---|
| 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 | nul |
| DBTYPE_ERROR | ExterneExceptie |
| DBTYPE_FILETIME | DateTime |
| DBTYPE_GUID | Guid |
| DBTYPE_HCHAPTER | niet ondersteund |
| DBTYPE_I1 | SByte |
| DBTYPE_I2 | Int16 |
| DBTYPE_I4 | Int32 |
| DBTYPE_I8 | Int64 |
| DBTYPE_IDISPATCH | Object |
| DBTYPE_IUNKNOWN | Object |
| DBTYPE_NULL | DBNull.Value |
| DBTYPE_NUMERIC | Decimal |
| DBTYPE_PROPVARIANT | Object |
| DBTYPE_R4 | Single |
| DBTYPE_R8 | Double |
| DBTYPE_STR | string |
| DBTYPE_UDT | niet ondersteund |
| DBTYPE_UI1 | byte (Int16) |
| DBTYPE_UI2 | UInt16 (Int32) |
| DBTYPE_UI4 | UInt32 (Int64) |
| DBTYPE_UI8 | UInt64 (decimaal) |
| DBTYPE_VARIANT | Object |
| DBTYPE_VARNUMERIC | niet ondersteund |
| DBTYPE_WSTR | string |
Eigenschappen
| Name | Description |
|---|---|
| FieldCount |
Hiermee haalt u het aantal kolommen in de huidige rij op. |
| Item[Int32] |
Hiermee haalt u de kolom op die zich in de opgegeven index bevindt. |
| Item[String] |
Hiermee haalt u de kolom op met de opgegeven naam. |
Methoden
| Name | Description |
|---|---|
| GetBoolean(Int32) |
Hiermee haalt u de waarde van de opgegeven kolom op als een Booleaanse waarde. |
| GetByte(Int32) |
Hiermee wordt de 8-bits niet-ondertekende gehele waarde van de opgegeven kolom opgehaald. |
| GetBytes(Int32, Int64, Byte[], Int32, Int32) |
Leest een stroom van bytes van de opgegeven kolom offset in de buffer als een matrix, beginnend bij de opgegeven buffer offset. |
| GetChar(Int32) |
Hiermee haalt u de tekenwaarde van de opgegeven kolom op. |
| GetChars(Int32, Int64, Char[], Int32, Int32) |
Hiermee leest u een stroom tekens van de opgegeven kolom offset in de buffer als matrix, te beginnen bij de opgegeven buffer offset. |
| GetData(Int32) |
Retourneert een IDataReader voor de opgegeven kolomordinaal. |
| GetDataTypeName(Int32) |
Hiermee haalt u de gegevenstypegegevens voor het opgegeven veld op. |
| GetDateTime(Int32) |
Hiermee haalt u de datum- en tijdgegevenswaarde van het opgegeven veld op. |
| GetDecimal(Int32) |
Hiermee haalt u de numerieke waarde van de vaste positie van het opgegeven veld op. |
| GetDouble(Int32) |
Hiermee wordt het drijvende kommanummer met dubbele precisie van het opgegeven veld opgehaald. |
| GetFieldType(Int32) |
Hiermee haalt u de Type informatie op die overeenkomt met het type Object dat wordt geretourneerd van GetValue(Int32). |
| GetFloat(Int32) |
Hiermee haalt u het drijvende kommanummer van één precisie van het opgegeven veld op. |
| GetGuid(Int32) |
Retourneert de GUID-waarde van het opgegeven veld. |
| GetInt16(Int32) |
Hiermee wordt de 16-bits geheel getalwaarde van het opgegeven veld opgehaald. |
| GetInt32(Int32) |
Hiermee wordt de 32-bits geheel getalwaarde van het opgegeven veld opgehaald. |
| GetInt64(Int32) |
Hiermee wordt de 64-bits geheel getalwaarde van het opgegeven veld opgehaald. |
| GetName(Int32) |
Hiermee haalt u de naam op van het veld dat moet worden gevonden. |
| GetOrdinal(String) |
Retourneert de index van het benoemde veld. |
| GetString(Int32) |
Hiermee haalt u de tekenreekswaarde van het opgegeven veld op. |
| GetValue(Int32) |
Retourneert de waarde van het opgegeven veld. |
| GetValues(Object[]) |
Hiermee wordt een matrix met objecten gevuld met de kolomwaarden van de huidige record. |
| IsDBNull(Int32) |
Geef als resultaat of het opgegeven veld is ingesteld op null. |