¿Por qué no lo haces por código? Utilizar esos data control te quita control sobre tu aplicación y la hace menos actualizable y escalable.
Lo ideal es que tengas un stored procedure que dependiendo de los parámetros que le envíes, retorne unos datos específicos, o un grupo de stored procedures, de los cuales ejecutarás uno dependiendo de la entrada del usuario. A través de ADO.NET ejecutas el stored procedure que te retorna los valores, de acuerdo a las validaciones que hayas hecho previamente en código, así:
-El usuario ingresa los datos y da clic en aceptar.
-El código de la forma valida los datos, si todo está bien, llama a la función que se conecta a la BD.
-La función verifica la información, dependiendo de los parámetros recibidos llama a tal o cual stored procedure OR La función envía los parámetros a un único stored procedure que los evaluará y ejecutará una sentencia determinada dependiendo de la información que recibe.
-La función retorna una DataSet que será enlazado a los controles de la forma.
De esta forma tienes más control sobre el código, que es más legible y fácil de actualizar o mejorar.