4
例如選擇,如果我運行下面的查詢:定義表名稱爲多個SQL結果在一個單一的查詢
select * from table1
select * from table2
並配有DB適配器(C#)運行它,我得到一個數據集的兩個表。 如何在SQL中定義結果表的名稱?
我只能在SQL裏面做這個。我無法訪問C#代碼。
例如選擇,如果我運行下面的查詢:定義表名稱爲多個SQL結果在一個單一的查詢
select * from table1
select * from table2
並配有DB適配器(C#)運行它,我得到一個數據集的兩個表。 如何在SQL中定義結果表的名稱?
我只能在SQL裏面做這個。我無法訪問C#代碼。
@Timothy Khouri:它可以完成!編輯:但不在SQL級別!
您可以在DataAdapter上使用TableMappings。
如果DataAdapter的SelectCommand返回多個結果集,則DataAdapter使用表映射來填充DataSet中相應的DataTable。默認情況下,第一個結果集將被填充到DataTable命名爲「表」,第二個結果集將被填充到DataTable名爲「表1」等
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
優秀的答案,我應該澄清我的迴應:)你可以隨時重命名他們(或使用你所說的映射),但你基本上只是脫離序數。 我們遇到了一個問題,其中一個存儲過程稱爲另一個存儲過程,而另一個存儲過程則改變了第二個存儲過程以做出選擇! (崩潰) – 2008-11-01 17:43:45