Выборка нескольких наборов результатов
Некоторые БД, например SQL Server, позволяют выполнять пакет запросов, возвращающий несколько наборов результатов. Предположим, нам нужно выполнить к БД Northwind следующий запрос: SELECT CustomerlD, CompanyName, ContactName, Phone FROM Customers; SELECT OrderlD, CustomerlD, EmployeeID, OrderDate FROM Orders; SELECT OrderlD, ProductID, Quantity, UnitPrice FROM [Order Details] Предыдущие фрагменты кода, использовавшие объект DataReader, циклично просматривали результаты запроса до тех пор, пока метод Read не возвращал False. Если вставить данный пакетный запрос в эти фрагменты, код обработает только результаты первого запроса пакета. Объект DataReader предоставляет метод NextResttlt, позволяющий перейти к результатам следующего запроса, который возвращает записи. Этот метод аналогичен методу Read в том, что возвращает логическое значение, указывающее, есть ли еще результаты. Тем не менее в отличие от метода Read, предварительно вызывать метод NextResult не требуется.
Если метод Read возвращает False, наличие дополнительных результатов, ожидающих выборки, можно проверить средствами метода NextResult. Если и он вернет False, наборов результатов больше нет. Следующий фрагмент кода выбирает результаты пакетного запроса при помощи метода NextResult. Visual Basic. NET cn. Open() Dim strSQL As String strSQL = "SELECT CustomerlD, CompanyName FROM Customers;" & "SELECT OrderlD, CustomerlD FROM Orders;" & "SELECT OrderlD, ProductID FROM [Order Details]Dim cmd As New OleDbCommand(strSQL, en) Dim rdr As OleD&DataReader = cmd. ExecuteReader() Do Do While rdr.
Read() Console. WriteLine(rdr(0) & " - " + rdr(t)) Loop Console. WriteLine() Loop While rdr. Nextfiesult() Visual C#.NET cn. Qpen(); string StrSQL = "SELECT CustomerlD, CompanyName FROM Customers;" + "SELECT OrderlD, CustomerlD FROM Orders;" + "SELECT OrderlD, ProductID FROM [Order Details]"; OleDbCommand cmd = new OleDbCommand(strSQL, en); OleDbDataReader rdr = cmd.
ExecuteReader(); Do while (rdr. Read()) { Console. WriteLine(rdr[0] + " - " + rdr[1]); Console. WriteLine(); } while (rdr. Nextresult());
Основы работы с Microsoft ADO.NET
Использование поставщика данных .NET
Метео


