SqlParameterCollection - AddRangeWithValue

A SqlParameterCollection extension method that adds a range with value to 'values'.

Try it

public static void Main()
{
	const string sql = @"SELECT 1 As IntColumn WHERE @Value1 = 1 AND @Value2 = 2";
	var dict = new Dictionary<string, object> {{"@Value1", 1}, {"@Value2", 2}};
	
	using (var conn = new SqlConnection(FiddleHelper.GetConnectionStringSqlServer()))
    {
        using (SqlCommand cmd = conn.CreateCommand())
        {
            conn.Open();
           cmd.CommandText = sql;
		
			//C# Extension Method: SqlParameterCollection - AddRangeWithValue
            cmd.Parameters.AddRangeWithValue(dict);
            var result = cmd.ExecuteScalarAs<int>();

            Console.WriteLine(result);
        }
    }
}

View Source
using System.Collections.Generic;
using System.Data.SqlClient;

public static partial class Extensions
{
    /// <summary>
    ///     A SqlParameterCollection extension method that adds a range with value to 'values'.
    /// </summary>
    /// <param name="this">The @this to act on.</param>
    /// <param name="values">The values.</param>
    public static void AddRangeWithValue(this SqlParameterCollection @this, Dictionary<string, object> values)
    {
        foreach (var keyValuePair in values)
        {
            @this.AddWithValue(keyValuePair.Key, keyValuePair.Value);
        }
    }
}