Der erste Codeblock im folgenden Beispiel ist typisch für einen ASP-Anwendungstyp, der ADO zum Lesen und Bearbeiten eines von einer einzelnen SQL-Abfrage zurückgegebenen Recordsets verwendet. Es verwendet das ADO-Recordset-Objekt, um die Datensätze zu lesen, die von der mit Microsoft Access bereitgestellten Northwind-Beispieldatenbank zurückgegeben werden. Der Code ist in einer Datei mit der Dateierweiterung .asp enthalten.
[Visual Basic]
< %@LANGUAGE=VBSCRIPT% >
<!
Dieses ASP-Beispiel verwendet ADO, um Datensätze aus einer Datenbank zu lesen und zwei zu drucken
Felder aus allen zurückgegebenen Datensätzen zu einer ASP-Seite. Die Verbindung zur Northwind-Datenbank erfolgt über eine ODBC-Systemdatenquelle (DSN).
>
<html>
<Körper>
<%
dim ADOconn, ADOrs, sqlstr
sqlstr="SELECT * FROM Employees;"
set ADOconn = Server.CreateObject("ADODB.Connection")
ADOconn.Open „DSN = Test“
set ADOrs = ADOconn.execute(sqlstr)
Wenn ADOrs.BOF und ADOrs.EOF, dann hat die Abfrage keine Datensätze zurückgegeben.
Response.Write("Keine Datensätze.")
anders
ADOrs.MoveFirst
Tun Sie es, während Sie es nicht tun ADOrs.EOF
Response.Write(ADOrs("FirstName") & " " _
& ADOrs("LastName") & "<br>")
ADOrs.MoveNext
Schleife
Response.Write("<p>Ende der Daten.")
Ende wenn
ADOrs.close
setze ADOrs = nichts
%>
</body>
</html>
Das folgende Beispiel veranschaulicht die minimalen Änderungen, die zum Konvertieren des vorherigen Beispiels in eine ASP.NET-Anwendung erforderlich sind. Die meisten Änderungen sind erforderlich, um der neuen Visual Basic-Syntax zu entsprechen. Diese Datei kann mit der Dateierweiterung .aspx umbenannt werden und wird mit ASP.NET ausgeführt. Geänderte Codezeilen werden fett dargestellt. Beachten Sie, dass die Direktive <%@ Page > mit dem Attribut aspcompat=true in der ersten Zeile hinzugefügt wurde.
[Visual Basic]
< %@Page aspcompat=true Language = VB%>
<!
In diesem Beispiel wird ADO verwendet, um Datensätze aus einer Datenbank zu lesen und zwei zu drucken
Felder aus allen Datensätzen in der Datenbank in eine ASP.NET-Seite.
Die Datenbank befindet sich auf dem Server und die Verbindung erfolgt über eine ODBC-Systemdatenquelle (DSN).
>
<html>
<Körper>
<%
dim objConn, rs, sqlstr
sqlstr="SELECT * FROM Employees;"
objConn = Server.CreateObject("ADODB.Connection") ' Satz entfernt.
objConn.Open("DSN=TEST") ' Klammern hinzugefügt.
rs = objConn.execute(sqlstr) ' Set-Anweisung entfernt.
Response.Write("<p>ADO Test</p>")
if rs.BOF and rs.EOF then ' Die Abfrage hat keine Datensätze zurückgegeben.
Response.Write("Keine Datensätze")
anders
rs.MoveFirst
Tun Sie es zwar nicht, aber rs.EOF
'Werteigenschaft angeben.
Response.Write(rs("FirstName").Value _
& " " & rs("LastName").Value & "<br>")
rs.MoveNext
Schleife
Response.Write("<p>Ende der Daten")
Ende wenn
rs.close
rs = Nothing ' Set-Anweisung entfernt.
%>
Das nächste Beispiel ist eine ASP.NET-Anwendung, die ADO.NET verwendet, um Datensätze aus derselben Northwind-Datenbank wie im vorherigen Beispiel zu lesen. Die von diesem Code generierte Ausgabe entspricht der Ausgabe des vorherigen Beispiels und wurde geändert, um der ASP.NET-Codeblockkonvention zu entsprechen.
Das Beispiel erstellt ein ADO.NET-DataSet-Objekt, das in diesem Fall eine Datentabelle enthält, die in etwa auf die gleiche Weise wie ein ADO-Recordset verwendet werden kann. Beachten Sie, dass ein Datensatz aus einer oder mehreren Sammlungen von DataTables, DataRelations und Constraints bestehen kann, die eine speicherresidente Datenbank bilden. Daher sind ADO.NET-Datensätze wesentlich flexibler als ADO-Recordsets.
Um ADO.NET verwenden zu können, müssen die Namespaces System.Data und System.Data.OleDb importiert werden. Wenn die Datenquelle eine SQL Server-Datenbank ist, importieren Sie den System.Data.SqlClient-Namespace anstelle von System.Data.OleDb. Weitere Informationen zur Verwendung von ADO und dem Verbindungsobjekt des SQL .NET-Datenanbieters finden Sie unter Verwalten von Verbindungen.
[Visual Basic]
< %@Import Namespace="System.Data"%>
< %@Import Namespace="System.Data.OleDb"%>
<!
In diesem Beispiel wird ADO.NET verwendet, um Datensätze aus einer Datenbank zu lesen und zwei zu drucken
Felder aus allen zurückgegebenen Datensätzen in eine ASP.NET-Seite
liegt auf dem lokalen Server.
>
<html>
<Script Language=VB Runat=Server>
Sub Page_Load(Sender als Objekt, e als EventArgs)
Dimmen Sie MyConnection als OleDbConnection
Dimmen Sie MyCommand als OleDbDataAdapter
Dimmen Sie MyDataset als DataSet
Dimmen Sie MyTable als DataTable
dim loop1, numrows As Integer
dim sqlstr als String
sqlstr = "SELECT * FROM Employees;"
' Stellen Sie eine Verbindung zur Datenquelle her.
MyConnection = New OleDbConnection("Provider=SQLOLEDB;" _
& "server=localhost;"Integrated Security=SSPI;" _
& "Initial Catalog=Northwind")
' Erstellen Sie ein Command-Objekt mit der SQL-Anweisung.
MyCommand = New OleDbDataAdapter(sqlstr, MyConnection)
' Füllen Sie ein DataSet mit Daten, die von der Datenbank zurückgegeben werden.
MyDataset = Neues DataSet
MyCommand.Fill(MyDataset)
' Erstellen Sie ein neues DataTable-Objekt und weisen Sie es ihm zu
' der neue Tisch in der Tables-Kollektion.
MyTable = Neue Datentabelle
MyTable = MyDataset.Tables(0)
' Finden Sie heraus, wie viele Zeilen sich in der Rows-Auflistung befinden
' des neuen DataTable-Objekts.
numrows = MyTable.Rows.Count
Wenn numrows = 0 dann
Response.Write("<p>Keine Datensätze.</p>")
Anders
Response.Write("<p>" & Cstr(numrows) & " Datensätze gefunden.</p>")
Für Schleife1 = 0 Zu Zahlen - 1
' Drucken Sie die Werte der beiden Spalten in den Spalten aus
'-Sammlung für jede Zeile.
Response.Write(MyTable.Rows(loop1).Item("FirstName") _
& " " & MyTable.Rows(loop1).Item("LastName") & "<br>")
Nächste Schleife1
Ende wenn
Response.Write("<p>Ende der Daten.</p>")
Sub beenden
</Script>
</html>
In Situationen, in denen eine Datenbankabfrage (oder sogar eine Multi-Table-Join-Abfrage) ein einzelnes Recordset zurückgibt, kann eine einzelne DataTable (in diesem Beispiel MyTable) auf die gleiche Weise wie ein ADO-Recordset verwendet werden.
Weitere Informationen finden Sie in der „NET FRAMEWORK SDK-Dokumentation“.