c# – 为SQL Server结果集中的表分配名称

前端之家收集整理的这篇文章主要介绍了c# – 为SQL Server结果集中的表分配名称前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在编写一个执行多个连续SELECT语句的存储过程.当我通过ADO.NET执行此过程时,我的目的是最终得到一个包含多个DataTable对象的DataSet.这表现得如预期.

我目前依赖于DataSet中表的顺序来匹配存储过程中SELECT语句的顺序,但是这个顺序实际上没有意义.最终必须维护程序的人不应该知道结果的预期顺序,维护申请的人也不应该知道程序中的陈述的顺序.

我想知道的是,是否可以在存储过程本身的每个SELECT语句的结果中分配名称,然后通过ADO.NET(希望无缝地)通过它来通过其名称访问每个表而不是它的顺序?

例如

// populate DataSet with results from stored proc
DataSet ds = new DataSet();
dataAdapter.Fill(ds);

// now access one of the resulting DataTable via name
return ds.Tables["NamedResultFromTheProc"];

那么,有没有办法实现这一目标?或者我是否必须依赖SELECT语句的顺序并始终通过其索引访问所需的表?

解决方法

我没试过这个,但是你不能改变存储过程的结构,这样你就有一个查询在每个数据查询之前返回表的名字吗?

select 'TableName'
select * from Table where 1 = 1

然后通过创建表并将其添加到手动构建数据集?

猜你在找的C#相关文章