我已经编写了一个返回2个表的存储过程:

select *
from workers

select *
from orders


我从C#应用程序调用此存储过程,并得到一个带有两个表的DataSet,并且一切正常。

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

myDataSet.Tables["workers"]...


我试图在Google中寻找答案,但找不到。也许搜索关键字是不够的。

最佳答案

您实际上无法从服务器端执行任何操作来影响这些表名-这些名称仅存在于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"]了。

10-08 14:03