次の例の最初のコード ブロックは、ADO を使用して単一の SQL クエリから返されたレコードセットを読み取り、操作するタイプの ASP アプリケーションの典型的なものです。 ADO Recordset オブジェクトを使用して、Microsoft Access に提供されている Northwind サンプル データベースから返されたデータ レコードを読み取ります。コードは、.asp ファイル拡張子の付いたファイルに含まれます。
【ビジュアルベーシック】
< %@LANGUAGE=VBSCRIPT% >
<!
この ASP の例では、ADO を使用してデータベースからレコードを読み取り、2 つのレコードを出力します。
返されたすべてのレコードのフィールドを ASP ページに送信します。Northwind データベースへの接続は、ODBC システム データ ソース (DSN.
>
<html>
<本文>
<%
dim ADOconn、ADOrs、sqlstr
sqlstr="SELECT * FROM 従業員;"
set ADOconn = Server.CreateObject("ADODB.Connection")
ADOconn.Open「DSN = テスト」
set ADOrs = ADOconn.execute(sqlstr)
if ADOrs.BOF および ADOrs.EOF then ' クエリはレコードを返しませんでした。
Response.Write("レコードがありません。")
それ以外
ADOrs.MoveFirst
ADOrs.EOF を実行しないでください
Response.Write(ADOrs("名") & " " _
& ADOrs("姓") & "<br>")
ADOrs.MoveNext
ループ
Response.Write("<p>データの終わり。")
終了する場合
ADOrs.close
ADOrs = 何も設定しない
%>
</body>
</html>
次の例は、前の例を ASP.NET アプリケーションに変換するために必要な最小限の変更を示しています。新しい Visual Basic 構文に準拠するには、ほとんどの変更が必要です。このファイルは、.aspx ファイル拡張子を付けて名前を変更でき、ASP.NET で実行できます。変更されたコード行は太字で示されています。 aspcompat=true 属性を持つ <%@ Page > ディレクティブが最初の行に追加されていることに注意してください。
【ビジュアルベーシック】
< %@ページaspcompat=true 言語 = VB%>
<!
この例では、ADO を使用してデータベースからレコードを読み取り、2 つのレコードを出力します。
データベース内のすべてのレコードのフィールドを ASP.NET ページに追加します。
データベースはサーバー上にあり、接続は ODBC システム データ ソース (DSN.
>
<html>
<本文>
<%
dim objConn、rs、sqlstr
sqlstr="SELECT * FROM 従業員;"
objConn = Server.CreateObject("ADODB.Connection") ' セットが削除されました。
objConn.Open("DSN=TEST") ' かっこが追加されました。
rs = objConn.execute(sqlstr) ' Set ステートメントが削除されました。
Response.Write("<p>ADO Test</p>")
if rs.BOF and rs.EOF then ' クエリはレコードを返しませんでした。
Response.Write("レコードがありません")
それ以外
rs.MoveFirst
rs.EOF を実行しないでください
'Valueプロパティを指定します。
Response.Write(rs("名").Value _
& " " & rs("姓").値 & "<br>")
rs.次へ移動
ループ
Response.Write("<p>データの終わり")
終了する場合
rs.close
rs = nothing ' set ステートメントが削除されました。
%>
次の例は、ADO.NET を使用して、前の例と同じ Northwind データベースからレコードを読み取る ASP.NET アプリケーションです。このコードによって生成される出力は、前の例の出力と同等であり、ASP.NET コード ブロック規則に準拠するように変更されています。
この例では、ADO.NET DataSet オブジェクトを作成します。この場合、このオブジェクトには、ADO レコードセットとほぼ同じ方法で使用できるデータ テーブルが含まれています。データ セットは、メモリ常駐データベースを構成する DataTable、DataRelation、および Constraint の 1 つ以上のコレクションで構成できるため、ADO.NET データ セットは ADO レコードセットよりもはるかに柔軟であることに注意してください。
ADO.NET を使用するには、System.Data および System.Data.OleDb 名前空間をインポートする必要があります。データ ソースが SQL Server データベースの場合は、System.Data.OleDb の代わりに System.Data.SqlClient 名前空間をインポートします。 ADO と SQL .NET データ プロバイダーの接続オブジェクトの使用の詳細については、「接続の管理」を参照してください。
【ビジュアルベーシック】
< %@Import名前空間="System.Data"%>
< %@Import名前空間="System.Data.OleDb"%>
<!
この例では、ADO.NET を使用してデータベースからレコードを読み取り、2 つのレコードを出力します。
ASP.NET ページに返されたすべてのレコードのフィールド。
ローカルサーバー上にあります。
>
<html>
<スクリプト言語=VB Runat=サーバー>
Sub Page_Load(オブジェクトとして送信者、EventArgsとして)
MyConnection を OleDbConnection として暗くする
MyCommand を OleDbDataAdapter として暗くする
データセットとしての dim MyDataset
データテーブルとしての dim MyTable
dim ループ 1、numrows を整数として
文字列としての dim sqlstr
sqlstr = "SELECT * FROM 従業員;"
' データ ソースへの接続を作成します。
MyConnection = New OleDbConnection("Provider=SQLOLEDB;" _
& "server=localhost;"統合セキュリティ=SSPI;" _
& "Initial Catalog=Northwind")
' SQL ステートメントを使用して Command オブジェクトを作成します。
MyCommand = New OleDbDataAdapter(sqlstr, MyConnection)
' データベースから返されたデータを DataSet に入力します。
MyDataset = 新しいデータセット
MyCommand.Fill(MyDataset)
' 新しい DataTable オブジェクトを作成してそれに割り当てます
' Tables コレクション内の新しいテーブル。
MyTable = 新しいデータテーブル
MyTable = MyDataset.Tables(0)
' Rows コレクションに含まれる行数を確認します
' 新しい DataTable オブジェクトの。
numrows = MyTable.Rows.Count
numrows = 0 の場合
Response.Write("<p>レコードがありません。</p>")
それ以外
Response.Write("<p>" & Cstr(numrows) & " レコードが見つかりました。</p>")
For ループ 1 = 0 To numrows - 1
' Columns の 2 つの列の値を出力します
' 行ごとのコレクション。
Response.Write(MyTable.Rows(loop1).Item("名") _
& " " & MyTable.Rows(loop1).Item("姓") & "<br>")
次のループ1
終了の場合
Response.Write("<p>データの終わり。</p>")
エンドサブ
</スクリプト>
</html>
データベース クエリ (または複数テーブル結合クエリ) が単一のレコードセットを返す状況では、単一の DataTable (この例では MyTable) を ADO レコードセットとほぼ同じ方法で使用できます。
「NET FRAMEWORK SDKドキュメント」を参照してください。