Try this generic method.
using System.Collections.Generic;
using System;
using System.Data;
using System.Data.SqlClient;
class Program
{
static void Main(string[] args)
{
List<parametermapping> mappings = new List<parametermapping>();
mappings.Add(new ParameterMapping() { ParameterName = "@ID", Value = 1 });
mappings.Add(new ParameterMapping() { ParameterName = "@Name", Value = "karthik" });
mappings.Add(new ParameterMapping() { ParameterName = "@Age", Value = 26 });
mappings.Add(new ParameterMapping() { ParameterName = "@Address", Value = "Bangalore" });
ExecuteSp(mappings, "yourstoredprodedureName");
}
protected static void AddSqlParameterToCollection(string sqlparametername, object value, SqlParameterCollection parameterCollection)
{
SqlParameter objSqlParameter = new SqlParameter();
objSqlParameter.ParameterName = sqlparametername;
objSqlParameter.Value = value;
parameterCollection.Add(objSqlParameter);
}
protected static void ExecuteSp(List<parametermapping> mappings, string spName)
{
SqlConnection con = new SqlConnection();
con.ConnectionString = "your conection string";
SqlCommand objCommand = new SqlCommand();
SqlParameterCollection objParamColl;
objParamColl = objCommand.Parameters;
objCommand.CommandType = CommandType.StoredProcedure;
try
{
if (mappings != null)
foreach (ParameterMapping map in mappings)
AddSqlParameterToCollection(map.ParameterName, map.Value, objParamColl);
objCommand.ExecuteNonQuery();
}
catch (Exception ex)
{
throw ex;
}
finally
{
}
}
}
public class ParameterMapping
{
public string ParameterName { get; set; }
public object Value { get; set; }
}