Первый блок кода в следующем примере типичен для типа приложения ASP, которое использует ADO для чтения и управления набором записей, возвращаемым из одного запроса SQL. Он использует объект ADO Recordset для чтения записей данных, возвращаемых из образца базы данных Northwind, поставляемого с Microsoft Access. Код будет содержаться в файле с расширением .asp.
[Визуальный базовый]
< %@LANGUAGE=VBSCRIPT% >
<!
В этом примере ASP используется ADO для чтения записей из базы данных и печати двух
поля из всех возвращенных записей на страницу ASP. Соединение с базой данных Northwind осуществляется через системный источник данных ODBC (DSN.
>
<html>
<тело>
<%
dim ADOconn, ADOrs, sqlstr
sqlstr="ВЫБРАТЬ * ИЗ Сотрудников;"
установите ADOconn = Server.CreateObject("ADODB.Connection")
ADOconn.Open «DSN = Тест»
установите ADOrs = ADOconn.execute(sqlstr)
if ADOrs.BOF и ADOrs.EOF then ' Запрос не вернул ни одной записи.
Response.Write("Нет записей.")
еще
ADors.MoveFirst
Делай, пока не ADOrs.EOF
Response.Write(ADOrs("FirstName") & " " _
& ADOrs("Фамилия") & "<br>")
ADors.MoveNext
Петля
Response.Write("<p>Конец данных.")
конец, если
ADOrs.close
установить ADOrs = ничего
%>
</тело>
</html>
В следующем примере показаны минимальные изменения, необходимые для преобразования предыдущего примера в приложение ASP.NET. Большинство изменений необходимо для соответствия новому синтаксису Visual Basic. Этот файл можно переименовать с расширением .aspx, и он будет работать с ASP.NET. Измененные строки кода выделены жирным шрифтом. Обратите внимание, что директива <%@ Page > с атрибутом aspcompat=true была добавлена в первую строку.
[Визуальный базовый]
< %@Page aspcompat=true Language = VB%>
<!
В этом примере ADO используется для чтения записей из базы данных и печати двух
поля из всех записей в базе данных на страницу ASP.NET.
База данных расположена на сервере, а подключение осуществляется через системный источник данных ODBC (DSN.
>
<html>
<тело>
<%
дим objConn, rs, sqlstr
sqlstr="ВЫБРАТЬ * ИЗ Сотрудников;"
objConn = Server.CreateObject("ADODB.Connection") ' Набор удален.
objConn.Open("DSN=TEST") ' Добавлены круглые скобки.
rs = objConn.execute(sqlstr) ' Оператор установки удален.
Response.Write("<p>ADO Test</p>")
if rs.BOF и rs.EOF then ' Запрос не вернул ни одной записи.
Response.Write("Нет записей")
еще
RS.MoveFirst
Делай, пока не rs.EOF
'Укажите свойство Value.
Response.Write(rs("FirstName").Value _
& " " & rs("Фамилия").Значение & "<br>")
rs.MoveNext
Петля
Response.Write("<p>Конец данных")
конец, если
RS.закрыть
rs = Nothing ' Оператор Set удален.
%>
Следующий пример — приложение ASP.NET, которое использует ADO.NET для чтения записей из той же базы данных Northwind, что и предыдущий пример. Вывод, сгенерированный этим кодом, эквивалентен выводу предыдущего примера и был изменен в соответствии с соглашением о блоках кода ASP.NET.
В примере создается объект DataSet ADO.NET, который в данном случае содержит таблицу данных, которую можно использовать практически так же, как набор записей ADO. Обратите внимание, что набор данных может состоять из одной или нескольких коллекций DataTables, DataRelations и Constraints, которые составляют резидентную базу данных, поэтому наборы данных ADO.NET гораздо более гибкие, чем наборы записей ADO.
Чтобы использовать ADO.NET, необходимо импортировать пространства имен System.Data и System.Data.OleDb. Если источником данных является база данных SQL Server, импортируйте пространство имен System.Data.SqlClient вместо System.Data.OleDb. Дополнительные сведения об использовании ADO и объекта соединения поставщика данных SQL .NET см. в разделе Управление соединениями.
[Визуальный базовый]
< %@Import Namespace="System.Data"%>
< %@Import Namespace="System.Data.OleDb"%>
<!
В этом примере ADO.NET используется для чтения записей из базы данных и печати двух
поля из всех возвращенных записей на страницу ASP.NET. База данных.
находится на локальном сервере.
>
<html>
<Язык сценария=VB Runat=Сервер>
Sub Page_Load (отправитель как объект, e как EventArgs)
Затемнить MyConnection как OleDbConnection
Dim MyCommand как OleDbDataAdapter
dim MyDataset как набор данных
тусклый MyTable как DataTable
dim loop1, numrows Как целое число
dim sqlstr как строка
sqlstr = "ВЫБРАТЬ * ИЗ Сотрудников;"
' Создаем соединение с источником данных.
MyConnection = New OleDbConnection("Provider=SQLOLEDB;" _
& "server=localhost;"Встроенная безопасность=SSPI;" _
& "Начальный каталог=Борей")
' Создайте объект команды с помощью оператора SQL.
MyCommand = New OleDbDataAdapter(sqlstr, MyConnection)
' Заполняем набор данных данными, возвращенными из базы данных.
МойНаборДанных = Новый Набор Данных
МояКоманда.Заполнить(МойНаборДанных)
' Создаем новый объект DataTable и присваиваем ему
' новая таблица в коллекции Tables.
MyTable = Новая таблица данных
МояТаблица = МойНаборДанных.Таблицы(0)
'Находим количество строк в коллекции Rows
' нового объекта DataTable.
numrows = MyTable.Rows.Count
Если numrows = 0, то
Response.Write("<p>Нет записей.</p>")
Еще
Response.Write("<p>" & Cstr(numrows) & " найдены записи.</p>")
Для цикла1 = 0 Для чисел - 1
' Распечатываем значения двух столбцов в Столбцах
' коллекция для каждой строки.
Response.Write(MyTable.Rows(loop1).Item("FirstName") _
& " " & MyTable.Rows(loop1).Item("LastName") & "<br>")
Следующий цикл 1
Конец, если
Response.Write("<p>Конец данных.</p>")
Конец субтитра
</скрипт>
</html>
В ситуациях, когда запрос к базе данных (или даже запрос на объединение нескольких таблиц) возвращает один набор записей, один DataTable (в данном примере MyTable) можно использовать почти так же, как набор записей ADO.
См. «Документацию NET FRAMEWORK SDK».