C# 更改SQL端存储过程返回的表名

C# 更改SQL端存储过程返回的表名,c#,sql,sql-server,C#,Sql,Sql Server,我编写了一个存储过程,返回两个表: select * from workers select * from orders 我从C#应用程序调用这个存储过程,得到一个包含两个表的数据集,一切正常 我的问题是如何更改SQL Server端的表名,以便在C端可以通过名称访问它(而不是表[0]): 我试着在谷歌上寻找答案,但没有找到。可能搜索关键字不够。的(用于从SQL Server返回结果的协议)没有提到“结果集名称”。因此,在ADO.net中访问结果集的唯一方法是使用示例中提到的数字。该(用于

我编写了一个存储过程,返回两个表:

select * 
from workers

select *
from orders
我从C#应用程序调用这个存储过程,得到一个包含两个表的
数据集
,一切正常

我的问题是如何更改SQL Server端的表名,以便在C端可以通过名称访问它(而不是
表[0]
):


我试着在谷歌上寻找答案,但没有找到。可能搜索关键字不够。

的(用于从SQL Server返回结果的协议)没有提到“结果集名称”。因此,在ADO.net中访问结果集的唯一方法是使用示例中提到的数字。

该(用于从SQL Server返回结果的协议)没有提到“结果集名称”。因此,在ADO.net中访问结果集的唯一方法是使用示例中提到的数字。

您不能从服务器端采取任何措施来影响这些表名-这些名称仅存在于ADO.net代码的客户端上

您能做的是在客户端-添加表映射-类似于:

SqlDataAdapter dap = new SqlDataAdapter(YourSqlCommandHere);
dap.TableMappings.Add("Table", "workers");
dap.TableMappings.Add("Table1", "orders");
这将在实际填充数据之前,将
(第一个结果集)重命名为
工作者
,将
表1
(第二个结果集)重命名为
订单
。所以在打电话给

dap.Fill(myDataSet);

然后,您可以使用
myDataSet.Tables[“workers”]
myDataSet.Tables[“orders”]

您不能从服务器端做任何事情来影响这些表名-这些名称只存在于客户端的ADO.NET代码中

您能做的是在客户端-添加表映射-类似于:

SqlDataAdapter dap = new SqlDataAdapter(YourSqlCommandHere);
dap.TableMappings.Add("Table", "workers");
dap.TableMappings.Add("Table1", "orders");
这将在实际填充数据之前,将
(第一个结果集)重命名为
工作者
,将
表1
(第二个结果集)重命名为
订单
。所以在打电话给

dap.Fill(myDataSet);

然后,您可以使用
myDataSet.Tables[“workers”]
myDataSet.Tables[“orders”]

您说要更改SQL端的表名吗?这个问题似乎更多地与C#和ADO.NET有关。数据集不是SQL Server系统的一部分,您引用它们的方式您可以使用C#中的枚举来实现非常类似的功能,并且您将受益于intellisense。您说要更改SQL端的表名吗?这个问题似乎更多地与C#和ADO.NET有关。数据集不是SQL Server系统的一部分,您引用它们的方式可以使用C#中的枚举来实现非常类似的功能,并且您将受益于intellisense。