たとえば、次のクエリを実行するとします。
select * from table1
select * from table2
DB アダプター (C#) で実行すると、2 つのテーブルを持つデータセットが得られます。SQL で結果テーブルの名前を定義するにはどうすればよいですか?
これはSQL内でのみ実行できます。C# コードにアクセスできません。
たとえば、次のクエリを実行するとします。
select * from table1
select * from table2
DB アダプター (C#) で実行すると、2 つのテーブルを持つデータセットが得られます。SQL で結果テーブルの名前を定義するにはどうすればよいですか?
これはSQL内でのみ実行できます。C# コードにアクセスできません。
@Timothy Khouri: できるよ!編集: SQL レベルではありません!
DataAdapter で TableMappings を使用できます。
DataAdapter の SelectCommand が複数の結果セットを返す場合、DataAdapter はテーブル マッピングを使用して、DataSet 内の対応する DataTable を埋めます。デフォルトでは、最初の結果セットは「Table」という名前の DataTable に入力され、2 番目の結果セットは「Table1」という名前の DataTable に入力されます。
SqlDataAdapter sqlDa = new SqlDataAdapter();
SqlCommand selectCmd = new SqlCommand();
selectCmd.CommandText = "spReturnMultpileResultSets";
selectCmd.CommandType = CommandType.StoredProcedure;
selectCmd.Connection = this.sqlConnection1;
sqlDa.SelectCommand = selectCmd;
// Add table mappings to the SqlDataAdapter
sqlDa.TableMappings.Add("Table", "Customers");
sqlDa.TableMappings.Add("Table1", "Orders");
// DataSet1 is a strongly typed DataSet
DataSet1 ds = new DataSet1();
this.sqlConnection1.Open();
sqlDa.Fill(ds);
this.sqlConnection1.Close();
参照:
http://blogs.msdn.com/vsdata/archive/2007/03/08/tableadapter-multiple-result-sets.aspx http://www.eggheadcafe.com/software/aspnet/32696845/strongly-typed-datasets .aspx