¿Hay alguna forma de ver si existe un campo en un objeto basado en IDataReader sin comprobar si hay una excepción IndexOutOfRangeException?Comprobación para ver si existe una columna en un lector de datos
En esencia, tengo un método que toma un objeto basado en IDataReader y crea una lista fuertemente tipada de los registros. En 1 instancia, un lector de datos tiene un campo que otros no. Realmente no quiero volver a escribir todas las consultas que alimentan este método para incluir alguna forma de este campo si no es necesario. La única forma en que he podido descifrar cómo hacerlo hasta el momento es arrojar el único campo 1 en un bloque try/catch como se muestra a continuación.
try
{
tmp.OptionalField = reader["optionalfield"].ToString();
}
catch (IndexOutOfRangeException ex)
{
//do nothing
}
¿Hay una manera más limpia corta de añadir el "campo opcional" a las otras consultas o copiar el método de carga por lo que la versión 1 utiliza el campo opcional y el otro no lo hace?
Estoy en el marco 2.0 también.
me pregunto por qué MS no ha añadido esta función para DataReader – FLICKER