Я пишу хранимую процедуру, которая выполняет несколько последовательных SELECT
операторов. Когда я выполняю эту процедуру через ADO.NET, я собираюсь получить DataSet
, содержащий несколько DataTable
объектов. Это ведет себя как ожидалось.
В настоящее время я полагаюсь на порядок таблиц в 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
и всегда обращаться к нужной таблице по ее индексу?