Можем ли мы вернуть множественный набор результатов в хранимой процедуре и как обработать его в .net - PullRequest
0 голосов
/ 18 мая 2011

Можем ли мы вернуть множественный набор результатов в хранимой процедуре и как обработать его в .net

??? если да как ?? если нет почему нет ?? объясните пожалуйста

Ответы [ 2 ]

3 голосов
/ 18 мая 2011

Если вы извлекаете данные с помощью DataReader, вы можете использовать метод NextResult для перебора нескольких наборов результатов, возвращаемых хранимой процедурой. Более подробную информацию можно найти здесь . Следующий код представляет собой простой пример из MSDN:

static void RetrieveMultipleResults(SqlConnection connection)
{
    using (connection)
    {
        SqlCommand command = new SqlCommand(
          "SELECT CategoryID, CategoryName FROM dbo.Categories;" +
          "SELECT EmployeeID, LastName FROM dbo.Employees",
          connection);
        connection.Open();

        SqlDataReader reader = command.ExecuteReader();

        while (reader.HasRows)
        {
            Console.WriteLine("\t{0}\t{1}", reader.GetName(0),
                reader.GetName(1));

            while (reader.Read())
            {
                Console.WriteLine("\t{0}\t{1}", reader.GetInt32(0),
                    reader.GetString(1));
            }
            reader.NextResult();
        }
    }
}

Если вы заполняете набор данных из DataAdapter, обратите внимание, что если DataAdapter встречает несколько наборов результатов, он создаст несколько DataTables (по одному для каждого набора результатов) и добавит их в результирующий набор данных.

0 голосов
/ 18 мая 2011

http://msdn.microsoft.com/en-us/library/yf1a7f4f.aspx имеет несколько хороших примеров.

вам нужно изменить connectionString, чтобы поддержать его. MultipleActiveResultSets=True

http://msdn.microsoft.com/en-us/library/h32h3abf.aspx для настроек конфигурации;

...