Buenas de nuevo...
No puedo colocar todas las insert, updates, etc en el mismo storeprocedure
porque no todas esas operaciones se llevan a cabo siempre que se ejecute el storeprocedure, depende de diversas condiciones que si se cumplen se hacen unas y si no otras, por lo que sería "marear mucho la perdiz" introducir todo en un mismo storeprocedure.
Además, me sirvo de una estructura "modular en capas" (capa de negocios y capa de datos para cada uno de los módulos de la aplicación), donde las funciones de la capa de datos (son las que llaman directamente a los storeprocedure para que la capa de negocios "no sepa nada" de los accesos a los datos) utilizan otras clases base que vienen haciendo lo siguiente:
EjecutarProcedimientoXXX
conexion.Open(); //conexion es el objeto sqlConnection
SqlDataAdapter sqlDA = new SqlDataAdapter();
sqlDA.SelectCommand = ConstruirConsultaCommand(procAlmacenado, parametros);
sqlDA.Fill(dataSet, tabla);
conexion.Close();
ConstruirConsultaCommand
SqlCommand command = new SqlCommand(procAlmacenado, conexion);
command.CommandType = CommandType.StoredProcedure;
foreach (SqlParameter parametro in parametros)
command.Parameters.Add(parametro);
return command;
Entonces, claro, es en la capa de negocios donde llamo a las diferentes funciones de la capa de datos según las condiciones que se vayan dando y es en esta capa de negocios donde quiero "controlar" que se hagan todas (si no hay fallos) o ninguna (si surge algún fallo).
¿Puedo hacer "transacciones" (o algo similar) para controlar esto en la capa de negocios?
Y como tampoco soy gallego...

ó

... menudo lío, ¿no?