Как заполнить набор данных с помощью SqlDataReader, в то время как хранимая процедура возвращает несколько таблиц? - PullRequest
0 голосов
/ 20 августа 2010

Я выполняю хранимую процедуру в асинхронном режиме из кода, используя SqlCommand BeginExecuteNonQuery или BeginExecuteReader метод.

Хранимая процедура возвращает несколько таблиц, поскольку существует более 1 оператора выбора.

Я хочу получить эти таблицы в наборе данных.

Возможно ли это?

Пожалуйста, помогите.

Спасибо.

1 Ответ

0 голосов
/ 23 августа 2010

Используйте SqlDataAdapter для заполнения набора данных следующим образом:

SqlConnection conn = new SqlConnection(connection);
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = new SqlCommand("exec spSomeStoredProc", conn);
adapter.Fill(dataset);

// dataset.Tables[0] - refers to resultset obtained from first SQL query 
// in stored procedure. dataset.Tables[1] - refers to resultset obtained
// from second SQL query. Etc. 

Если это нужно сделать, Async, взгляните на код в следующей статье, который показывает, как асинхронно вытягивать DataSet.

Асинхронный набор данных

...