Potrzebujesz metody SqlCommandBuilder.DeriveParameters(SqlCommand). Zauważ, że wymaga to dodatkowej podróży w obie strony do bazy danych, więc jest to dość znaczący spadek wydajności. Powinieneś rozważyć buforowanie wyników.
Przykładowe połączenie:
using (SqlConnection conn = new SqlConnection(CONNSTRING))
using (SqlCommand cmd = new SqlCommand("StoredProc", conn)) {
cmd.CommandType = CommandType.StoredProcedure;
SqlCommandBuilder.DeriveParameters(cmd);
cmd.Parameters["param1"].Value = "12345";
// ....
}