簡體   English   中英

從SQL端的存儲過程更改返回的表名

[英]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 (第一個結果集),以workersTable1 (第二個結果集),以orders你居然填充數據之前。 所以在打電話之后

dap.Fill(myDataSet);

然后你可以使用myDataSet.Tables["workers"]myDataSet.Tables["orders"]

TDS協議文檔 (用於從SQL Server返回結果的協議)未提及“結果集名稱”。 因此,您在ADO.net中訪問結果集的唯一方法是使用示例中提到的數字。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM