我编写了一个返回2个表的存储过程:
select *
from workers
select *
from orders
我从我的C#应用程序中调用此存储过程并获得带有两个表的DataSet
,一切正常。
我的问题是如何更改SQL Server端的表名 ,以便在C#端我可以通过名称(而不是Tables[0]
)访问它:
myDataSet.Tables["workers"]...
我试图在Google中寻找答案但却找不到答案。也许搜索关键字还不够。
答案 0 :(得分:4)
您无法从服务器端真正做任何事情来影响这些表名 - 这些名称仅存在于客户端,在您的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"]
。
答案 1 :(得分:0)
TDS Protocol documentation(用于从SQL Server返回结果的协议)未提及“结果集名称”。因此,您在ADO.net中访问结果集的唯一方法是使用示例中提到的数字。