ASP.NET - データベース接続

ADO.NETもまた .NET フレームワークの一部です。

ADO.NETの役割はデータアクセスの処理です。ADO.NETを通じて、データベースを操作できます。

ADO.NET とは何ですか?

  • ADO.NET は .NET フレームワークの一部です
  • ADO.NET はデータアクセス操作に使用されるクラスのシリーズで構成されています。
  • ADO.NET は完全に XMLに基づいています。
  • ADO.NET には Recordset オブジェクトがありません。ADO とは異なります。

データベース接続の作成

使用したことがある Northwind データベースを使用します。

まず、名前空間 "System.Data.OleDb" をインポートします。この名前空間が必要で、Microsoft Access その他の OLE DB データベースプロバイダーを操作できます。Page_Load サブルーチンでこのデータベースの接続を作成します。dbconn 変数を作成し、新しい OleDbConnection クラスをこの変数に割り当てます。この OleDbConnection クラスには、OLE DB とデータベースの場所を示す接続文字列が含まれています。次に、このデータベース接続を開きます:

<%@ Import Namespace="System.Data.OleDb" %>
<script runat="server">
sub Page_Load
dim dbconn
dbconn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;"
data source=" & server.mappath("northwind.mdb")"
dbconn.Open()
end sub
</script>

注記:この接続文字列は折り返しなく連続した文字列でなければなりません!

データベースコマンドの作成

データベースから取得する必要があるレコードを指定するために、dbcomm 変数を作成し、新しい OleDbCommand に値を設定します。この OleDbCommand クラスは、データベーステーブルに対する SQL クエリを発行するために使用されます:

<%@ Import Namespace="System.Data.OleDb" %>
<script runat="server">
sub Page_Load
dim dbconn, sql, dbcomm
dbconn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;"
data source=" & server.mappath("northwind.mdb")"
dbconn.Open()
sql = "SELECT * FROM customers"
dbcomm = New OleDbCommand(sql, dbconn)
end sub
</script>

DataReader の作成

OleDbDataReader クラスは、データソースからレコードストリームを読み取るために使用されます。OleDbCommand オブジェクトの ExecuteReader メソッドを呼び出すことで、DataReader を作成できます:

<%@ Import Namespace="System.Data.OleDb" %>
<script runat="server">
sub Page_Load
dim dbconn, sql, dbcomm, dbread
dbconn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;"
data source=" & server.mappath("northwind.mdb")"
dbconn.Open()
sql = "SELECT * FROM customers"
dbcomm = New OleDbCommand(sql, dbconn)
dbread=dbcomm.ExecuteReader()
end sub
</script>

Repeater コントロールにバインド

それでは、この DataReader を Repeater コントロールにバインドします:

<%@ Import Namespace="System.Data.OleDb" %>
<script runat="server">
sub Page_Load
dim dbconn, sql, dbcomm, dbread
dbconn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;"
data source=" & server.mappath("northwind.mdb")"
dbconn.Open()
sql = "SELECT * FROM customers"
dbcomm = New OleDbCommand(sql, dbconn)
dbread=dbcomm.ExecuteReader()
customers.DataSource=dbread
customers.DataBind()
dbread.Close()
dbconn.Close()
end sub
</script>
<html>
<body>
<form runat="server">
<asp:Repeater id="customers" runat="server">
<HeaderTemplate>
<table border="1" width="100%">
<tr>
<th>Companyname</th>
<th>Contactname</th>
<th>Address</th>
<th>City</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%#Container.DataItem("companyname")%></td>
<td><%#Container.DataItem("contactname")%></td>
<td><%#Container.DataItem("address")%></td>
<td><%#Container.DataItem("city")%></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
</form>
</body>
</html>

显示这个例子

关闭数据库连接

在不在需要访问数据库后,请记得始终将 DataReader 和数据库连接关闭:

dbread.Close()
dbconn.Close()