我在写一个存储过程,该存储过程执行多个连续的SELECT
语句。当我通过ADO.NET执行此过程时,我的意图是以包含若干DataTable
对象的DataSet
结束。这表现如预期。为SQL Server结果集中的表分配名称
我目前依靠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
声明的顺序,并始终按索引访问所需的表?
谢谢;你的建议在一定程度上有所帮助,虽然它不是理想的。至少这将负责处理与数据库的任何错误,而不是客户端应用程序。 – 2011-02-04 10:41:05