从 SQL 端的存储过程更改返回的表名
本文关键字:返回 存储过程 SQL | 更新日期: 2023-09-27 18:34:57
我编写了一个返回 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 中的结果集的唯一方法是按示例中提到的数字。