40
loading...
This website collects cookies to deliver better user experience
Provides a means of reading one or more forward-only streams of result sets obtained by executing a command at a data source, and is implemented by .NET data providers that access relational databases.
using var connection = new SqlConnection();
using var command = connection.CreateCommand();
command.CommandText = "StoredProcedureName";
command.CommandType = CommandType.StoredProcedure;
using IDataReader rd = command.ExecuteReader();
var person = new Person
{
Name = rd.GetString(0),
LastName = rd.GetString(1),
DateOfBirth = rd.GetDateTime(2)
};
using var connection = new SqlConnection();
using var command = connection.CreateCommand();
command.CommandText = "StoredProcedureName";
command.CommandType = CommandType.StoredProcedure;
using IDataReader rd = command.ExecuteReader();
var person = new Person
{
Name = rd.GetField<string>("Name"),
LastName = rd.GetField<string>("LastName"),
DateOfBirth = rd.GetField<DateTime>("DateOfBirth")
};
public static class Extensions
{
public static T GetField<T>(this IDataReader reader, string name)
{
var value = reader[name];
// En caso que el valor sea nulo retornara el valor default del tipo
if (value == null || value == DBNull.Value)
{ return default(T); }
// En caso que se trate convertir a un Enum, el metodo de coversion es diferente
if (typeof(T).IsEnum)
{ return (T)Enum.Parse(typeof(T), value.ToString()); }
// En caso que se trate convertir a un Nullable<>, el metodo de coversion es diferente
if (Nullable.GetUnderlyingType(typeof(T)) != null)
{ return (T)value; }
// Metodo de conversión default
return (T)Convert.ChangeType(value, typeof(T));
}
}