I managed to make a generic function for you
private void BindDataList(SqlConnection _cn, string query, List<KeyValuePair<string, object>> parameters, DataList dl)
{
SqlCommand _cmd = new SqlCommand(query, _cn);
_cmd.CommandType = CommandType.StoredProcedure;
if (parameters != null)
{
for (int i = 0; i < parameters.Count; i++)
{
_cmd.Parameters.AddWithValue(parameters[i].Key, parameters[i].Value);
}
}
_cn.Open();
SqlDataReader _dr = _cmd.ExecuteReader();
if (_dr.HasRows)
{
dl.DataSource = _dr;
dl.DataBind();
}
}
To call
//with Parameters
List<KeyValuePair<string, object>> parameters = new List<KeyValuePair<string,object>>();
KeyValuePair<string, object> keyValuePair = new KeyValuePair<string,object>("@h_name", Request.QueryString["h_name"]);
parameters.Add(keyValuePair);
BindDataList(_cn, "select * from products where h_name=@h_name", keyValuePair, DataList1);
//without Parameters
BindDataList(_cn, "select * from products", null, DataList2);