[英]Change returned table name from stored procedure at the SQL side
我編寫了一個返回2個表的存儲過程:
select *
from workers
select *
from orders
我從我的C#應用程序調用這個存儲過程並獲得一個帶有兩個表的DataSet
,一切正常。
我的問題是如何更改SQL Server端的表名,以便在C#端我可以通過名稱(而不是Tables[0]
)訪問它:
myDataSet.Tables["workers"]...
我試圖在谷歌尋找答案,但找不到它。 也許搜索關鍵字不夠用。
您無法從服務器端執行任何操作來影響這些表名 - 這些名稱僅存在於客戶端,在ADO.NET代碼中。
你可以做的是在客戶端 - 添加表映射 - 類似於:
SqlDataAdapter dap = new SqlDataAdapter(YourSqlCommandHere);
dap.TableMappings.Add("Table", "workers");
dap.TableMappings.Add("Table1", "orders");
這將“重命名”的Table
(第一個結果集),以workers
和Table1
(第二個結果集),以orders
你居然填充數據之前。 所以在打電話之后
dap.Fill(myDataSet);
然后你可以使用myDataSet.Tables["workers"]
和myDataSet.Tables["orders"]
。
TDS協議文檔 (用於從SQL Server返回結果的協議)未提及“結果集名稱”。 因此,您在ADO.net中訪問結果集的唯一方法是使用示例中提到的數字。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.