簡単なコンソールアプリケーションが動くだけではつまらないだろう。そこでここでは、より現実的に使えるようなASP.NETアプリケーションが動くかどうかを調べてみよう。
ここでは、SQL Serverのpubsデータベースのauthorsテーブルからレコードを取り出し、それをDataGridコントロールに表示するプログラムを考える(画面4)。SQL Serverということから分かるように、ここでは、ADO.NETの動作テストも兼ねようという狙いである。
|
本稿は、ASP.NETにおけるWebアプリケーションの作り方を目的としたものではないため、画面4の実行結果を得るためのリストの詳細は説明しない。リストは本稿末からダウンロードできるようにしてあるので、実際に試してみようという人は、そちらのリストを参照してほしい。ここでは、画面4のアプリケーションで何をしているのかという簡単な補足にとどめる。
1. DataSetを使ったデータベースの読み出し
画面4では、SqlConnection、SqlDataAdatperというオブジェクトを使いSQLデータベースに接続し、データベース上のデータベースをDataSetオブジェクトに格納、そしてDataGridコントロールにデータバインディングしている。コードを示すと、下記のようになる。
private void Page_Load(object sender, System.EventArgs e) { sqlConnection1.ConnectionString = ConfigurationSettings.AppSettings["DSNSTRING"]; sqlDataAdapter1.Fill(dataSet11); this.DataBind(); } |
実際に実行するためには、pubsデータベースがインストールされているSQL Server環境が必要だ。どのデータベースに接続するのかは、Web.configファイルのappSettings要素で記述できるようにしてある。
<appSettings> <add key="DSNSTRING" value="Server=サーバーのIPアドレス;Database=pubs;User ID=ここにユーザー名を入れる; Password=ここにパスワードを入れる;Integrated Security=SSPI;"/> </appSettings> |
実稼働させる場合には、上記の部分を、利用するデータベースの環境に合わせてほしい。
なお、Windows環境(IIS環境)では、SQL Serverに接続する際に、Windowsアカウントを用いる「Windows認証」を使えるが、UNIX上では、Windowsアカウントと統合できない。そのため、「SQL Server認証」を使い、User IDパラメータとPasswordパラメータを使ってデータベースに接続するアカウントを指定する方式をとる。そのため、SQL Serverの認証方式が「統合モード」になっていない場合には、正しく通信ができない。
|
|
|
本稿では、Windows環境のASP.NETアプリケーションがそのまま動くかどうかを確かめることを目的としたため、Windows環境のデータベースとして代表的なSQL Serverを使うことにするが、Monoには、MySQLやPostgreSQLなどのオープンソースのデータベースに接続できる接続プロバイダも用意されている。これらを利用して、UNIX環境のデータベースに接続することが可能なはずである。
2. DataGridコントロールを使った並べ替え
DataGridコントロールでは、10件ずつレコードを表示するようにし、画面下の「1」「2」……というリンクをクリックすることで、前ページや次ページに移動するようにしてある。この機能を提供するコードは、次の通りである。
private void DataGrid1_PageIndexChanged(object source, |
Copyright © ITmedia, Inc. All Rights Reserved.