/// <summary> /// Executes a stored procedure with input and output parameters. /// </summary> /// <param name="person">An instance of Person to hold values for the parameters.</param> private static void ExecuteNonQueryWithOutputParameters(Person person) { var parameters = new IDbDataParameter[] { _DB.CreateOutputParameter("@Age", ADONETType.Int), _DB.CreateOutputParameter("@FirstName", ADONETType.NVarChar, 4000), _DB.CreateOutputParameter("@LastName", ADONETType.NVarChar, 4000), _DB.CreateParameter("@Id", ADONETType.Int, person.Id) }; _DB.ExecuteNonQuery("stp_GetPersonDetailsById", CommandType.StoredProcedure, parameters); person.Age = parameters.GetValueOrDefault <int>("@Age"); person.FirstName = parameters.GetValueOrDefault <string>("@FirstName"); person.LastName = parameters.GetValueOrDefault <string>("@LastName"); }
/// <summary> /// Gets the value of the parameter, or default(T) if the parameter's value is null or DBNull. /// </summary> /// <typeparam name="T">The type of the value of the parameter.</typeparam> /// <param name="parameter">The parameter.</param> /// <returns>The value of the parameter as T, or default(T) if it's value is null or DBNull.</returns> public static T GetValueOrDefault <T>(this IDbDataParameter parameter) { return(parameter.GetValueOrDefault <T>(default(T))); }