IDataRecord Interfaz
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Proporciona acceso a los valores de columna dentro de cada fila para DataReader
y se implementa mediante proveedores de datos de .NET que acceden a bases de datos relacionales.
public interface class IDataRecord
public interface IDataRecord
type IDataRecord = interface
Public Interface IDataRecord
- Derivado
Ejemplos
En el ejemplo siguiente se crean instancias de las clases derivadas, SqlConnection, SqlCommandy SqlDataReader. En el ejemplo se leen los datos y se escribe en la consola. Por último, el ejemplo cierra SqlDataReadery, a continuación, .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
Comentarios
Las IDataReader interfaces y IDataRecord permiten que una clase heredada implemente una DataReader
clase . Esto proporciona una manera de leer uno o varios flujos de solo avance de conjuntos de resultados. Para obtener más información sobre DataReader
las clases, vea Recuperación de datos mediante dataReader.
Una aplicación no crea una instancia de la IDataRecord interfaz directamente, sino que crea una instancia de una clase que hereda IDataRecord. Normalmente, para ello, se obtiene a DataReader
través del ExecuteReader
método del Command
objeto .
Las clases que heredan IDataRecord deben implementar todos los miembros heredados y, normalmente, definir miembros adicionales para agregar funcionalidad específica del proveedor.
Los proveedores que implementan son DataReader
necesarios para exponer datos en tipos de Common Language Runtime (CLR). La coerción de tipos se define para algunos tipos que no se incluyen en CLR. Se puede acceder a estos valores como tipos alternativos que cumplan con los tipos CLR. Por ejemplo, en la tabla siguiente se enumeran las asignaciones sugeridas de tipos de datos OLE DB a tipos CLR, con tipos alternativos entre paréntesis.
Tipo de 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 | no admitido |
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 | Doble |
DBTYPE_STR | string |
DBTYPE_UDT | no admitido |
DBTYPE_UI1 | byte (Int16) |
DBTYPE_UI2 | UInt16 (Int32) |
DBTYPE_UI4 | UInt32 (Int64) |
DBTYPE_UI8 | UInt64 (decimal) |
DBTYPE_VARIANT | object |
DBTYPE_VARNUMERIC | no admitido |
DBTYPE_WSTR | string |
Propiedades
FieldCount |
Obtiene el número de columnas de la fila actual. |
Item[Int32] |
Obtiene la columna que está ubicada en el índice especificado. |
Item[String] |
Obtiene la columna con el nombre especificado. |
Métodos
GetBoolean(Int32) |
Obtiene el valor de la columna especificada como tipo Boolean. |
GetByte(Int32) |
Obtiene el valor del entero con signo de 8 bits de la columna especificada. |
GetBytes(Int32, Int64, Byte[], Int32, Int32) |
Lee una secuencia de bytes del desplazamiento de columna especificado en el búfer como una matriz, comenzando en el desplazamiento de búfer dado. |
GetChar(Int32) |
Obtiene el valor de carácter de la columna especificada. |
GetChars(Int32, Int64, Char[], Int32, Int32) |
Lee una secuencia de caracteres del desplazamiento de columna especificado en el búfer como una matriz, comenzando en el desplazamiento de búfer dado. |
GetData(Int32) |
Devuelve un IDataReader para el ordinal de columna especificado. |
GetDataTypeName(Int32) |
Obtiene la información de tipo de datos para el campo especificado. |
GetDateTime(Int32) |
Obtiene el valor de datos de fecha y hora del campo especificado. |
GetDecimal(Int32) |
Obtiene el valor numérico de posición fija del campo especificado. |
GetDouble(Int32) |
Obtiene número de punto flotante de doble precisión del campo especificado. |
GetFieldType(Int32) |
Obtiene la información Type correspondiente al tipo de Object que sería devuelto desde GetValue(Int32). |
GetFloat(Int32) |
Obtiene número de punto flotante de precisión sencilla del campo especificado. |
GetGuid(Int32) |
Devuelve el valor GUID del campo especificado. |
GetInt16(Int32) |
Obtiene el valor del entero con signo de 16 bits del campo especificado. |
GetInt32(Int32) |
Obtiene el valor del entero con signo de 32 bits del campo especificado. |
GetInt64(Int32) |
Obtiene el valor del entero con signo de 64 bits del campo especificado. |
GetName(Int32) |
Obtiene el nombre del campo para buscar. |
GetOrdinal(String) |
Devuelve el índice del campo con nombre. |
GetString(Int32) |
Obtiene el valor de cadena del campo especificado. |
GetValue(Int32) |
Devuelve el valor del campo especificado. |
GetValues(Object[]) |
Rellena una matriz de objetos con los valores de columna del registro actual. |
IsDBNull(Int32) |
Devuelve si el campo especificado está establecido en null. |