連載:VS 2005でいってみようDBプログラミング

第2回 無償データベース SQL Server 2005 Express Editionを使ってみよう

山田 祥寛(http://www.wings.msn.to/
2006/03/29
Page1 Page2 Page3

 データベースに対する接続設定は、多くの場合、アプリケーション共通で利用するものです。ほかのファイルからも共通して接続設定を参照できるように、アプリケーション構成ファイル(Web.config)に保存しておきましょう(図6の )。

 [データ ソースの構成]ウィザードで接続設定の保存を選択すると、Web.configには以下のような記述が追加されるはずです。

<connectionStrings>
  <add name="myDb" connectionString="Data Source=.\SQLEXPRESS; AttachDbFilename=|DataDirectory|\MyDB.mdf; Integrated Security=True; User Instance=True"*2
    providerName="System.Data.SqlClient" />
</connectionStrings>
リスト1 Web.configにおける接続設定(抜粋)
[データ ソースの構成]ウィザードから接続設定の保存を選択すると、自動的に作成される。パラメータを追加/編集したい場合には、コード・エディタ上で直接に編集することも可能。

*2 「|DataDirectory|」は予約文字列で、アプリケーション・ルート配下の「App_Data」フォルダを表します。

 このファイルでは、<add>要素のname属性が設定名、providerName属性が接続に使用するデータ・プロバイダ(各種データソースにアクセスするため一連のクラス群。その名前空間で指定)、そして、connectionString属性が接続設定(データベース接続文字列)を表します。

 データベース接続文字列は、「パラメータ名=値」の情報をセミコロン(;)区切りで記述します。接続文字列で利用可能な一連のパラメータは、以下のとおりです。

パラメータ名 概要 デフォルト
Data Source(Server) 接続先のSQL Server名
AttachDBFilename(Initial File Name) データベース・ファイル名
Connect Timeout(Connection Timeout) 接続タイムアウト時間(秒) 15
Initial Catalog(Database) データベース名
Integrated Security Windows認証を使用するか(Trueの場合)、SQL Server認証するかの指定(Falseの場合) False
User ID SQL ServerアカウントのユーザーID(非推奨)
Password(Pwd) SQL Serverアカウントのパスワード(非推奨)
MultipleActiveResultSets MARS(Multiple Active Result Set)*3を有効にするか True
Persist Security Info セキュリティ情報を接続文字列の一部として返すか False
Packet Size SQL Serverとの通信に使用するパケット・サイズ(byte単位) 8192
表5 データベース接続文字列で利用可能な主なパラメータ名(カッコ内はエイリアス)
データベース接続文字列は「パラメータ名=値」の情報をセミコロン(;)区切りでConnectionString属性に記述する。

*3 ADO.NET 2.0で追加された機能の1つで、1つの接続上で複数のクエリを実行できる機能のことです。従来、ADO.NET 1.0では、結果セットが開かれた状態で新たな結果セットを開くことはできませんでした。拙稿「VS 2005で変革されたASP.NET、Windowsフォーム、ADO.NETを総覧」も参照してください。

[コラム]Web.config

 ASP.NETの動作を規定する「構成ファイル」は、「マシン構成ファイル(Machine.config)」と「アプリケーション構成ファイル(Web.config)」に大別できます。Machine.configはサーバに1つしか配置できませんが、Web.configはアプリケーションごと、またはアプリケーション・ルート配下のサブフォルダ単位に配置することができます。

 Web.configが異なる階層のフォルダに配置されており、それぞれのWeb.configに同一の項目が設定されている場合には、最下層の構成ファイルの設定が優先的に適用されるようになっています。

 構成ファイルに設定されていない項目でも、より上位の階層に配置された構成ファイルにその項目の設定がある場合には、その上層の構成ファイルから「設定の継承」が行われて適用されます。

 「Select ステートメントの構成」(図6の )では、[詳細オプション]で「INSERT、UPDATE、およびDELETEステートメントの生成」をチェックしておくことにします。ここで「INSERT、UPDATE、および DELETE ステートメントの生成」がチェックされていない場合、後からGridViewコントロール上でデータの編集や削除を行うことはできませんので注意してください。

 一連の作業の後、[完了]ボタンをクリックすると、デザイナ画面ではGridViewコントロールの下にSqlDataSourceコントロールが配置され、GridViewコントロールにもデータソース(この場合はbooksテーブル)の内容がバインドされていることが確認できるはずです。


図7 SqlDataSourceコントロールが配置されたGridViewコントロール
[データ ソースの構成]ウィザードの設定が完了すると、GridViewコントロールの表示はこのようになる。

[2]GridViewコントロールの設定を行う

 最低限、データソースの内容をグリッド表示するだけならば、上記[1]の手順だけでも十分です。しかし、一般的には、ただデータを流し込むだけではなく、ソート/ページング機能を付加したい、カラムの内容やそもそもグリッドのデザインを変更したい、など、さまざまな要望が発生するはずです。そのような場合にも、ほとんどの処理をプロパティの設定だけで実現できてしまうのが、GridViewコントロールの魅力です。

 例えば、編集や削除、選択、ソート、ページングなどの処理を追加するならば、[GridView タスク]メニューから該当のチェック・ボックスにチェックを入れるだけです。


図8 [GridView タスク]メニューでの各種処理の有効化
編集や削除、選択、ソート、ページングなどの処理を追加するには、該当のチェック・ボックスにチェックを入れる。カラムの内容をカスタマイズするには、[列の編集]をクリックして行う。

 また、せっかくなので、[オートフォーマット]からグリッド表のデザインも見栄えよく変更しておくことにしましょう。ここでは「シンプル」デザインを選択することにしますが、もちろん、自分で細かく色やフォントを変更したいという場合には、プロパティ・ウィンドウからXxxxxStyleプロパティを設定することで、細かなカスタマイズを行うことも可能です。あらかじめ用意されたデザインを基に、より自分好みのデザインに変更してみるのもよいでしょう。

 以上で、GridViewコントロールを利用したbooksテーブルのグリッド表示は完了です。次の図はアプリケーションの実行例です。


図9 作成したWebフォームの実行結果
GridViewコントロールの[GridView タスク]の設定を行うだけで、1行もコードを書かずにソート処理やページング、データの編集などを行うことができる。

 コードは1行も記述していないのに、ソートやページング処理、データ編集などが動作していることが確認できるはずです。

 以上、今回はSQL ServerをVS 2005で操作する方法と、ASP.NETアプリケーションからデータベースを参照するための最もポピュラーな手段として、GridViewコントロールの基本的な利用方法を紹介しました。

 GridViewコントロールを利用することで、よくありがちなデータベース操作ならば、プログラムレスで実現できてしまうことがお分かりになったと思います。もしもまだVS 2005を用意されていないという方は、ぜひ、自環境にインストールして、ASP.NETの手軽さを体感してみてください。

 もっとも、ASP.NET(というか、.NET Framework)の魅力は、単に手軽であるということだけではありません。豊富に用意された諸機能を利用することで、各人固有の要件にも柔軟に対応できるという点にあります。次回は、GridViewコントロールをはじめ、ASP.NETで提供されるデータアクセス・コントロールについて、より詳細を見ていく予定です。どうぞお楽しみに。End of Article


 INDEX
  Visual Studio 2005でいってみようDBプログラミング
  第2回 無償データベース SQL Server 2005 Express Editionを使ってみよう
    1.SQL Server 2005の基本
    2.データベースの内容をグリッド表示する(1)
  3.データベースの内容をグリッド表示する(2)
 
インデックス・ページヘ  「Visual Studio 2005でいってみようDBプログラミング」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間