我已经编写了一个返回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"]
了。