ASP.NET Web フォーム - データベース接続
このセクションでは、 ASP.NET でのデータベース接続の実装方法。次のコンテンツでは、ADO.NET について触れます。ADO.NET も .NET Framework の一部です。データ アクセスの処理には ADO.NET が使用されます。 ADO.NET を通じてデータベースを操作できます。
例
データベース接続 - DataList コントロールへのバインド
データベース接続 - リピーター コントロールにバインド
ADO.NET は .NET Framework の一部です
ADO.NET は、データ アクセスを処理する一連のクラスで構成されます
ADO.NET は完全に XML に基づいています
ADO.NET には、ADO とは異なり、Recordset オブジェクトがありません。
この例では、Northwind データベースを使用します。
まず、「System.Data.OleDb」名前空間をインポートします。 Microsoft Access やその他の OLE DB データベース プロバイダーを操作するには、この名前空間が必要です。 Page_Load サブルーチンでこのデータベースへの接続を作成します。 dbconn 変数を作成し、OLE DB プロバイダーとデータベースの場所を示す接続文字列を含む新しい OleDbConnection クラスを割り当てます。次に、データベース接続を開きます。
<%@ Import Namespace="System.Data.OleDb" %><script runat="server">sub Page_Loaddim dbconndbconn=New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;data source=" & server.mappath( "northwind.mdb"))dbconn.Open()end サブ</script>
注:この接続文字列は、改行のない連続した文字列である必要があります。
データベースから取得するレコードを指定するには、dbcomm 変数を作成し、それに新しい OleDbCommand クラスを割り当てます。この OleDbCommand クラスは、データベース テーブルに対して SQL クエリを発行するために使用されます。
<%@ Import Namespace="System.Data.OleDb" %><script runat="server">sub Page_Loaddim dbconn,sql,dbcommdbconn=New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;データ ソース=" & server.mappath("northwind.mdb"))dbconn.Open()sql="SELECT * FROM顧客"dbcomm=New OleDbCommand(sql,dbconn)end sub</script>
OleDbDataReader クラスは、データ ソースからレコードのストリームを読み取るために使用されます。 DataReader は、OleDbCommand オブジェクトの ExecuteReader メソッドを呼び出すことによって作成されます。
<%@ Import Namespace="System.Data.OleDb" %><script runat="server">sub Page_Loaddim dbconn,sql,dbcomm,dbreaddbconn=New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;データ ソース= " &server.mappath("northwind.mdb"))dbconn.Open()sql="SELECT *顧客から"dbcomm=New OleDbCommand(sql,dbconn)dbread=dbcomm.ExecuteReader()end sub</script>
次に、DataReader を Replyer コントロールにバインドします。
<%@ Import Namespace="System.Data.OleDb" %><script runat="server">sub Page_Loaddim dbconn,sql,dbcomm,dbreaddbconn=New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;データ ソース= " &server.mappath("northwind.mdb"))dbconn.Open()sql="SELECT * FROM 顧客"dbcomm=New OleDbCommand(sql,dbconn)dbread=dbcomm.ExecuteReader()customers.DataSource=dbreadcustomers.DataBind()dbread.Close()dbconn.Close()end sub</script><html><body> <form runat="server"><asp:Repeater id="customers" runat="server"><HeaderTemplate><table><tr><th>会社名</th><th>連絡先名</th><th>住所</th><th>市区町村</th></tr ></HeaderTemplate><ItemTemplate><tr><td><%#Container.DataItem("companyname")%></td><td><%#Contain er.DataItem("連絡先名")%></td><td><%#Container.DataItem("住所")%></td><td><%#Container.DataItem("都市")%> </td></tr></ItemTemplate><FooterTemplate></table></FooterTemplate></asp:Repeater></form></body></html>
データベースにアクセスする必要がなくなった場合は、DataReader とデータベース接続を忘れずに閉じてください。
dbread.Close()dbconn.Close()