IDataRecord Interface
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Fornece acesso aos valores das colunas dentro de cada linha para um DataReader, e é implementado por fornecedores de dados .NET que acedem a bases de dados relacionais.
public interface class IDataRecord
public interface IDataRecord
type IDataRecord = interface
Public Interface IDataRecord
- Derivado
Exemplos
O exemplo seguinte cria instâncias das classes derivadas, SqlConnection, SqlCommand, e SqlDataReader. O exemplo lê os dados, escrevendo-os para a consola. Finalmente, o exemplo fecha o SqlDataReader, e depois 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
Observações
As IDataReader interfaces e IDataRecord permitem que uma classe herdeira implemente uma DataReader classe. Isto permite ler um ou mais fluxos apenas para frente de conjuntos de resultados. Para mais informações sobre DataReader classes, consulte Recuperar Dados Usando um Leitor de Dados.
Uma aplicação não cria diretamente uma instância da IDataRecord interface, mas cria uma instância de uma classe que herda IDataRecord. Normalmente, faz-se isto através DataReader do ExecuteReader método do Command objeto.
As classes que herdam IDataRecord devem implementar todos os membros herdados, e normalmente definem membros adicionais para adicionar funcionalidades específicas do fornecedor.
Os fornecedores que implementam a DataReader são obrigados a expor dados em tipos de execução de linguagem comum (CLR). A coerção de tipo é definida para alguns tipos que não estão incluídos no CLR. Estes valores podem ser acedidos como tipos alternativos que cumprem os tipos CLR. Como exemplo, a tabela seguinte lista mapeamentos sugeridos dos tipos de dados OLE DB para tipos CLR, com tipos alternativos entre parênteses.
| Tipo OLE DB | Tipo CLR |
|---|---|
| DBTYPE_BOOL | Int16 |
| DBTYPE_BSTR | cadeia (de caracteres) |
| 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 | ExceçãoExterna |
| DBTYPE_FILETIME | DateTime |
| DBTYPE_GUID | GUID |
| DBTYPE_HCHAPTER | não suportado |
| DBTYPE_I1 | SByte |
| DBTYPE_I2 | Int16 |
| DBTYPE_I4 | Int32 |
| DBTYPE_I8 | Int64 |
| DBTYPE_IDISPATCH | objecto |
| DBTYPE_IUNKNOWN | objecto |
| DBTYPE_NULL | DBNull.Value |
| DBTYPE_NUMERIC | Decimal |
| DBTYPE_PROPVARIANT | objecto |
| DBTYPE_R4 | Solteiro |
| DBTYPE_R8 | Double |
| DBTYPE_STR | cadeia (de caracteres) |
| DBTYPE_UDT | não suportado |
| DBTYPE_UI1 | byte (Int16) |
| DBTYPE_UI2 | UInt16 (Int32) |
| DBTYPE_UI4 | UInt32 (Int64) |
| DBTYPE_UI8 | UInt64 (Decimal) |
| DBTYPE_VARIANT | objecto |
| DBTYPE_VARNUMERIC | não suportado |
| DBTYPE_WSTR | cadeia (de caracteres) |
Propriedades
| Name | Description |
|---|---|
| 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
| Name | Description |
|---|---|
| GetBoolean(Int32) |
Obtém o valor da coluna especificada como um Booleano. |
| GetByte(Int32) |
Obtém o valor inteiro sem sinal de 8 bits da coluna especificada. |
| GetBytes(Int32, Int64, Byte[], Int32, Int32) |
Lê um fluxo de bytes do deslocamento da coluna especificado para o buffer como um array, começando no deslocamento do buffer dado. |
| GetChar(Int32) |
Obtém o valor do carácter da coluna especificada. |
| GetChars(Int32, Int64, Char[], Int32, Int32) |
Lê um fluxo de caracteres do deslocamento de coluna especificado para o buffer como um array, começando no deslocamento do buffer dado. |
| GetData(Int32) |
Devolve um IDataReader para o ordinal da coluna especificado. |
| GetDataTypeName(Int32) |
Obtém a informação do tipo de dado para o campo especificado. |
| GetDateTime(Int32) |
Obtém o valor 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 dupla precisão do campo especificado. |
| GetFieldType(Int32) |
Obtém a Type informação correspondente ao tipo de Object que seria devolvido de GetValue(Int32). |
| GetFloat(Int32) |
Obtém o número de ponto flutuante de precisão simples do campo especificado. |
| GetGuid(Int32) |
Devolve o valor GUID do campo especificado. |
| GetInt16(Int32) |
Obtém o valor inteiro assinado de 16 bits do campo especificado. |
| GetInt32(Int32) |
Obtém o valor inteiro assinado de 32 bits do campo especificado. |
| GetInt64(Int32) |
Obtém o valor inteiro assinado de 64 bits do campo especificado. |
| GetName(Int32) |
Obtém o nome para o campo a encontrar. |
| GetOrdinal(String) |
Devolva o índice do campo nomeado. |
| GetString(Int32) |
Obtém o valor da cadeia do campo especificado. |
| GetValue(Int32) |
Devolve o valor do campo especificado. |
| GetValues(Object[]) |
Preenche um array de objetos com os valores das colunas do registo atual. |
| IsDBNull(Int32) |
Devolve se o campo especificado está definido como nulo. |