IDataRecord 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 přístup k hodnotám sloupců v každém řádku pro objekt a DataReaderje implementován zprostředkovateli dat .NET, kteří přistupují k relačním databázím.
public interface class IDataRecord
public interface IDataRecord
type IDataRecord = interface
Public Interface IDataRecord
- Odvozené
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 SqlDataReadera 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ěnou třídu implementovat DataReader třídu. To 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 IDataRecord rozhraní přímo, ale vytvoří instanci třídy, která dědí IDataRecord. Obvykle to provedete získáním DataReader metody ExecuteReader objektu Command .
Třídy, které dědí, musí implementovat všechny zděděné IDataRecord členy a obvykle definovat další členy pro přidání funkcí specifických pro zprostředkovatele.
Poskytovatelé implementují DataReader data v typech CLR (Common Language Runtime). Převod typu je definován pro některé typy, které nejsou zahrnuty v CLR. Tyto hodnoty mohou být přístupné jako alternativní typy, které vyhovují typům CLR. Například následující tabulka uvádí navrhované mapování z datových typů OLE DB na typy CLR s alternativními typy v závorkách.
| Typ OLE DB | Typ CLR |
|---|---|
| DBTYPE_BOOL | Int16 |
| DBTYPE_BSTR | řetězec |
| 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 | Průvodce |
| DBTYPE_HCHAPTER | nepodporováno |
| 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 | řetězec |
| DBTYPE_UDT | nepodporováno |
| DBTYPE_UI1 | byte (Int16) |
| DBTYPE_UI2 | UInt16 (Int32) |
| DBTYPE_UI4 | UInt32 (Int64) |
| DBTYPE_UI8 | UInt64 (desítkové) |
| DBTYPE_VARIANT | objekt |
| DBTYPE_VARNUMERIC | nepodporováno |
| DBTYPE_WSTR | řetězec |
Vlastnosti
| Name | Description |
|---|---|
| FieldCount |
Získá počet sloupců v aktuálním řádku. |
| Item[Int32] |
Získá sloupec umístěný v zadaném indexu. |
| Item[String] |
Získá sloupec se zadaným názvem. |
Metody
| Name | Description |
|---|---|
| GetBoolean(Int32) |
Získá hodnotu zadaného sloupce jako logickou hodnotu. |
| GetByte(Int32) |
Získá 8bitovou celočíselnou hodnotu bez znaménka zadaného sloupce. |
| 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. |
| GetChar(Int32) |
Získá hodnotu znaku zadaného sloupce. |
| 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. |
| GetData(Int32) |
IDataReader Vrátí pro zadaný sloupec pořadový řádek. |
| GetDataTypeName(Int32) |
Získá informace o datovém typu pro zadané pole. |
| GetDateTime(Int32) |
Získá datová hodnota data a času zadaného pole. |
| GetDecimal(Int32) |
Získá číselnou hodnotu pevné pozice zadaného pole. |
| GetDouble(Int32) |
Získá číslo s plovoucí desetinnou čárkou s dvojitou přesností zadaného pole. |
| GetFieldType(Int32) |
Type Získá informace odpovídající typuObject, který by byl vrácen z GetValue(Int32). |
| GetFloat(Int32) |
Získá číslo s plovoucí desetinnou čárkou s jednoduchou přesností zadaného pole. |
| GetGuid(Int32) |
Vrátí hodnotu GUID zadaného pole. |
| GetInt16(Int32) |
Získá 16bitovou celočíselnou hodnotu zadaného pole. |
| GetInt32(Int32) |
Získá 32bitovou celočíselnou hodnotu zadaného pole. |
| GetInt64(Int32) |
Získá 64bitovou celočíselnou hodnotu zadaného pole. |
| GetName(Int32) |
Získá název pole, které chcete najít. |
| GetOrdinal(String) |
Vrátí index pojmenovaného pole. |
| GetString(Int32) |
Získá řetězcovou hodnotu zadaného pole. |
| GetValue(Int32) |
Vrátí hodnotu zadaného pole. |
| GetValues(Object[]) |
Naplní pole objektů hodnotami sloupce aktuálního záznamu. |
| IsDBNull(Int32) |
Vrátí, zda je zadané pole nastaveno na hodnotu null. |