Allora, facciamo un esperimento per vedere se è possibile ..
ho creato la seguente stored procedure in un database SQL 2008:
CREATE PROCEDURE dbo.StackOverflow3668337
AS
BEGIN
SET NOCOUNT ON;
SELECT 'First bit';
SELECT 'Second bit';
END
Poi ho creato un nuovo progetto in VS2010, e ha aggiunto un elemento DataSet al progetto.
Ho creato una connessione al database in Esplora server e trascinato l'elemento "StackOverflow3668337" sulla superficie del designer DataSet. Questo è il risultato:
![TableAdapter from DataSet Designer](https://i.stack.imgur.com/TdTrg.png)
in modo che sarebbe solo una DataTable. Quindi, sfortunatamente, penso che la risposta sia fuori dagli schemi, "No".
Penso che il motivo principale per questo è che il TableAdapter classes che vengono generati sono solo legati a un singolo DataTable. È possibile avere più TableAdapter per un singolo DataTable ma tutti devono restituire gli stessi dati. Non c'è capacità per un singolo TableAdapter di interagire con altri DataTable.
fonte
2010-12-23 04:24:11
Posso confermare che questo metodo funziona. Sono stato in grado di restituire due tabelle in un'unica procedura e compilare un set di dati fortemente tipizzato utilizzando questo metodo. Ho anche provato a utilizzare un parametro per controllare quale tabella viene restituita. Questo ha funzionato, ma ha richiesto due chiamate a da.Fill (ds.Table) e da.Fill (ds.Table1). Non l'idea, ma funziona anche se il tuo unico obiettivo è di ridurre al minimo il numero di procedure nel tuo database. – bdwakefield