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 jednotlivých řádcích pro DataReader
a implementují zprostředkovatelé 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 , SqlConnectionSqlCommanda SqlDataReader. Příklad přeč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
Rozhraní IDataReader a IDataRecord umožňují dědící třídě implementovat DataReader
třídu. To poskytuje způsob čtení jednoho nebo více datových proudů pouze dopředných sad výsledků. Další informace o DataReader
třídách najdete 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 prostřednictvím ExecuteReader
objektu Command
.
Třídy, které dědí IDataRecord , musí implementovat všechny zděděné členy a obvykle definovat další členy pro přidání funkcí specifických pro zprostředkovatele.
Poskytovatelé implementují DataReader
modul , jsou vyžadováni ke zveřejnění dat v typech modulu CLR (Common Language Runtime). Převod typu je definován pro některé typy, které nejsou zahrnuty v CLR. K těmto hodnotám je možné přistupovat jako k alternativním typům, které odpovídají typům CLR. Jako příklad uvádí následující tabulka 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 | Identifikátor GUID |
DBTYPE_HCHAPTER | nepodporováno |
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 | Jednoduché |
DBTYPE_R8 | dvojité |
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 | object |
DBTYPE_VARNUMERIC | nepodporováno |
DBTYPE_WSTR | řetězec |
Vlastnosti
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
GetBoolean(Int32) |
Získá hodnotu zadaného sloupce jako logická hodnota. |
GetByte(Int32) |
Získá 8bitovou celočíselnou hodnotu bez znaménka zadaného sloupce. |
GetBytes(Int32, Int64, Byte[], Int32, Int32) |
Načte stream 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) |
Přeč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) |
Vrátí hodnotu IDataReader pro zadanou řadovou řadu sloupce. |
GetDataTypeName(Int32) |
Získá informace datového typu pro zadané pole. |
GetDateTime(Int32) |
Získá hodnotu data a času zadaného pole. |
GetDecimal(Int32) |
Získá číselnou hodnotu s pevnou pozicí zadaného pole. |
GetDouble(Int32) |
Získá číslo s plovoucí desetinou čá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á jednopřesné číslo s plovoucí desetinou čárkou zadaného pole. |
GetGuid(Int32) |
Vrátí hodnotu GUID zadaného pole. |
GetInt16(Int32) |
Získá 16bitovou celočíselnou hodnotu 16bitového čísla zadaného pole. |
GetInt32(Int32) |
Získá 32bitovou celočíselnou hodnotu 32bitového signéhohoho hodnoty zadaného pole. |
GetInt64(Int32) |
Získá 64bitovou celočíselnou hodnotu 64bitového signedho hodnoty 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 sloupců aktuálního záznamu. |
IsDBNull(Int32) |
Vrátí, jestli je zadané pole nastavené na hodnotu null. |