IDataRecord Interface
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Fornece acesso aos valores de coluna em cada linha para um DataReader
e é implementado por provedores de dados .NET que acessam bancos de dados relacionais.
public interface class IDataRecord
public interface IDataRecord
type IDataRecord = interface
Public Interface IDataRecord
- Derivado
Exemplos
O exemplo a seguir cria instâncias das classes derivadas, SqlConnection, SqlCommande SqlDataReader. O exemplo lê os dados, gravando-os no console. Por fim, o exemplo fecha o SqlDataReadere, em seguida, o 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
Comentários
As IDataReader interfaces e IDataRecord permitem que uma classe herdada implemente uma DataReader
classe. Isso fornece uma maneira de ler um ou mais fluxos somente encaminhamento de conjuntos de resultados. Para obter mais informações sobre DataReader
classes, consulte Recuperando dados usando um DataReader.
Um aplicativo não cria uma instância da IDataRecord interface diretamente, mas cria uma instância de uma classe que herda IDataRecord. Normalmente, você faz isso obtendo um DataReader
por meio do ExecuteReader
método do Command
objeto .
As classes herdadas IDataRecord devem implementar todos os membros herdados e normalmente definir membros adicionais para adicionar funcionalidade específica do provedor.
Os provedores que implementam um DataReader
são necessários para expor dados em tipos CLR (Common Language Runtime). A coerção de tipo é definida para alguns tipos não incluídos no CLR. Esses valores podem ser acessados como tipos alternativos que estão em conformidade com tipos CLR. Por exemplo, a tabela a seguir lista mapeamentos sugeridos de tipos de dados OLE DB para tipos CLR, com tipos alternativos entre parênteses.
Tipo OLE DB | Tipo CLR |
---|---|
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 | null |
DBTYPE_ERROR | ExternalException |
DBTYPE_FILETIME | DateTime |
DBTYPE_GUID | Guid |
DBTYPE_HCHAPTER | sem suporte |
DBTYPE_I1 | SByte |
DBTYPE_I2 | Int16 |
DBTYPE_I4 | Int32 |
DBTYPE_I8 | Int64 |
DBTYPE_IDISPATCH | objeto |
DBTYPE_IUNKNOWN | objeto |
DBTYPE_NULL | DBNull.Value |
DBTYPE_NUMERIC | Decimal |
DBTYPE_PROPVARIANT | objeto |
DBTYPE_R4 | Single |
DBTYPE_R8 | Double |
DBTYPE_STR | string |
DBTYPE_UDT | sem suporte |
DBTYPE_UI1 | byte (Int16) |
DBTYPE_UI2 | UInt16 (Int32) |
DBTYPE_UI4 | UInt32 (Int64) |
DBTYPE_UI8 | UInt64 (Decimal) |
DBTYPE_VARIANT | objeto |
DBTYPE_VARNUMERIC | sem suporte |
DBTYPE_WSTR | string |
Propriedades
FieldCount |
Obtém o número de colunas na linha atual. |
Item[Int32] |
Obtém a coluna localizada no índice especificado. |
Item[String] |
Obtém a coluna com o nome especificado. |
Métodos
GetBoolean(Int32) |
Obtém o valor da coluna especificada como um booliano. |
GetByte(Int32) |
Obtém o valor de inteiro sem sinal de 8 bits da coluna especificada. |
GetBytes(Int32, Int64, Byte[], Int32, Int32) |
Lê um fluxo de bytes do deslocamento de coluna especificado no buffer como uma matriz, iniciando no deslocamento de buffer especificado. |
GetChar(Int32) |
Obtém o valor do caractere da coluna especificada. |
GetChars(Int32, Int64, Char[], Int32, Int32) |
Lê um fluxo de caracteres do deslocamento de coluna especificado no buffer como uma matriz iniciada no deslocamento de buffer fornecido. |
GetData(Int32) |
Retorna um IDataReader para o ordinal da coluna especificada. |
GetDataTypeName(Int32) |
Obtém as informações de tipo de dados do campo especificado. |
GetDateTime(Int32) |
Obtém o valor de dados de data e hora do campo especificado. |
GetDecimal(Int32) |
Obtém o valor numérico de posição fixa do campo especificado. |
GetDouble(Int32) |
Obtém o número de ponto flutuante de precisão dupla do campo especificado. |
GetFieldType(Int32) |
Obtém as informações Type que correspondem ao tipo de Object que seria retornado de GetValue(Int32). |
GetFloat(Int32) |
Obtém o número de ponto flutuante de precisão simples do campo especificado. |
GetGuid(Int32) |
Retorna o valor de GUID do campo especificado. |
GetInt16(Int32) |
Obtém o valor inteiro com sinal de 16 bits do campo especificado. |
GetInt32(Int32) |
Obtém o valor inteiro com sinal de 32 bits do campo especificado. |
GetInt64(Int32) |
Obtém o valor inteiro com sinal de 64 bits do campo especificado. |
GetName(Int32) |
Obtém o nome do campo a ser localizado. |
GetOrdinal(String) |
Retorna o índice do campo nomeado. |
GetString(Int32) |
Obtém o valor de cadeia de caracteres do campo especificado. |
GetValue(Int32) |
Retorne o valor do campo especificado. |
GetValues(Object[]) |
Popula uma matriz de objetos com os valores da coluna do registro atual. |
IsDBNull(Int32) |
Retorna se o campo especificado está definido como nulo. |