IDataRecord Gränssnitt
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.
Ger åtkomst till kolumnvärdena i varje rad för en DataReader och implementeras av .NET dataprovidrar som har åtkomst till relationsdatabaser.
public interface class IDataRecord
public interface IDataRecord
type IDataRecord = interface
Public Interface IDataRecord
- Härledda
Exempel
I följande exempel skapas instanser av de härledda klasserna , SqlConnection, SqlCommandoch SqlDataReader. Exemplet läser igenom data och skriver ut dem till konsolen. Slutligen stänger SqlDataReaderexemplet , och sedan 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
Kommentarer
Gränssnitten IDataReader och IDataRecord gör det möjligt för en ärvande klass att implementera en DataReader klass. Detta ger ett sätt att läsa en eller flera strömmar med endast framåtriktade resultatuppsättningar. Mer information om DataReader klasser finns i Hämta data med hjälp av en DataReader.
Ett program skapar inte en instans av IDataRecord gränssnittet direkt, men skapar en instans av en klass som ärver IDataRecord. Vanligtvis gör du detta genom att hämta en DataReader via ExecuteReader -metoden för Command objektet.
Klasser som ärver IDataRecord måste implementera alla ärvda medlemmar och vanligtvis definiera ytterligare medlemmar för att lägga till providerspecifika funktioner.
Leverantörer som implementerar en DataReader måste exponera data i clr-typer (common language runtime). Typtvång definieras för vissa typer som inte ingår i CLR. Dessa värden kan kommas åt som alternativa typer som följer CLR-typer. I följande tabell visas till exempel föreslagna mappningar från OLE DB-datatyper till CLR-typer, med alternativa typer inom parenteser.
| 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 | noll |
| Typfel i databas (DBTYPE_ERROR) | ExternalException |
| DBTYPE_FILETIME | DateTime |
| DBTYPE_GUID | GUID |
| DBTYPE_HCHAPTER | stöds inte |
| 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 | stöds inte |
| DBTYPE_UI1 | byte (Int16) |
| DBTYPE_UI2 | UInt16 (Int32) |
| DBTYPE_UI4 | UInt32 (Int64) |
| DBTYPE_UI8 | UInt64 (decimal) |
| DBTYPE_VARIANT | object |
| DBTYPE_VARNUMERIC | stöds inte |
| DBTYPE_WSTR | string |
Egenskaper
| Name | Description |
|---|---|
| FieldCount |
Hämtar antalet kolumner i den aktuella raden. |
| Item[Int32] |
Hämtar kolumnen som finns i det angivna indexet. |
| Item[String] |
Hämtar kolumnen med det angivna namnet. |
Metoder
| Name | Description |
|---|---|
| GetBoolean(Int32) |
Hämtar värdet för den angivna kolumnen som booleskt värde. |
| GetByte(Int32) |
Hämtar det 8-bitars osignerade heltalsvärdet för den angivna kolumnen. |
| GetBytes(Int32, Int64, Byte[], Int32, Int32) |
Läser en ström med byte från den angivna kolumnförskjutningen till bufferten som en matris, med början vid den angivna buffertförskjutningen. |
| GetChar(Int32) |
Hämtar teckenvärdet för den angivna kolumnen. |
| GetChars(Int32, Int64, Char[], Int32, Int32) |
Läser en dataström med tecken från den angivna kolumnförskjutningen till bufferten som en matris, med början vid den angivna buffertförskjutningen. |
| GetData(Int32) |
Returnerar en IDataReader för den angivna kolumnordningen. |
| GetDataTypeName(Int32) |
Hämtar datatypsinformationen för det angivna fältet. |
| GetDateTime(Int32) |
Hämtar datavärdet för datum och tid för det angivna fältet. |
| GetDecimal(Int32) |
Hämtar det numeriska värdet för fast position för det angivna fältet. |
| GetDouble(Int32) |
Hämtar flyttal med dubbel precision för det angivna fältet. |
| GetFieldType(Int32) |
Hämtar den Type information som motsvarar den typ av Object som skulle returneras från GetValue(Int32). |
| GetFloat(Int32) |
Hämtar flyttal med enkel precision för det angivna fältet. |
| GetGuid(Int32) |
Returnerar GUID-värdet för det angivna fältet. |
| GetInt16(Int32) |
Hämtar det 16-bitars signerade heltalsvärdet för det angivna fältet. |
| GetInt32(Int32) |
Hämtar det 32-bitars signerade heltalsvärdet för det angivna fältet. |
| GetInt64(Int32) |
Hämtar det 64-bitars signerade heltalsvärdet för det angivna fältet. |
| GetName(Int32) |
Hämtar namnet på fältet som ska hittas. |
| GetOrdinal(String) |
Returnera indexet för det namngivna fältet. |
| GetString(Int32) |
Hämtar strängvärdet för det angivna fältet. |
| GetValue(Int32) |
Returnerar värdet för det angivna fältet. |
| GetValues(Object[]) |
Fyller i en matris med objekt med kolumnvärdena för den aktuella posten. |
| IsDBNull(Int32) |
Returnera om det angivna fältet är inställt på null. |