解説ASP.NETで学ぶVisual Studio .NETの魅力第4回 Visual Studio.NETでプログラム・レス開発を学ぶ(後編) 山田 祥寛 |
|
|
(2)データベースに新規テーブルを作成する
サーバ・エクスプローラ上から新規にscheduleテーブルを作成する。scheduleテーブルのレイアウトは以下のとおり。
フィールド名 | データ型 | 概要 |
date | datetime | 日付(主キーとする) |
name | varchar(50) | 予定名 |
scheduleテーブルのレイアウト |
(3)データベースへの接続を設定する
SqlConnection、SqlCommandコントロールをコンポーネント・トレイに配置しよう。それぞれのコントロールの設定方法については、前回解説した「データベースと連携した一覧の抽出」を参考にしてほしい。
最終的には、以下のように設定がされるはずだ。
コントロール | プロパティ | 値 |
SqlConnection | (Name) | SqlConnection1 |
ConnectionString | workstation id=>マシン名<;packet size=4096;user id=sa;data source=">マシン名<\VSDOTNET";persist security info=False;initial catalog=master | |
SqlCommand | (Name) | SqlCommand1 |
CommendText | SELECT name FROM schedule WHERE (date = @dat) | |
Connection | SqlConnection1 | |
Parameters | (@datが生成) | |
データベース関連コントロールのプロパティ |
(4)コードを記述する
これでコントロールの設定は一通り完了した。ただし、このままではただ静的な外見が出来たにすぎないので、カレンダー上の日付がクリックされたタイミングでデータベースを読み込み、ダイアログ・ボックスを表示させるようコードを記述する。
Calendarコントロールをダブルクリックすると、コード・エディタが開き、Calendar1_SelectionChangedイベント・プロシージャにカーソルが合うはずだ。以下のように、コードを追記してみよう。
|
|
Calendar1_SelectionChangedイベント・プロシージャに追加するコード | |
Calendarコントロールをダブルクリックすると表示されるコード・エディタで青文字部分を追記する。 |
ExecuteScalarメソッドは、SqlCommandコントロールに設定されたコマンドを実行し、取得したレコード・セットの1行目1列目のデータを返す。最初からピン・ポイントでデータを取得したいという場合には便利なメソッドだ。SQLステートメントに含まれるパラメータ(SqlCommand1.Parameters.Item(0).Value)には、事前にカレンダー上で選択された日付(Calendar1.SelectedDate)を設定しておく。
もちろん、今回のスケジュール帳のような場合には、必ずしも1日に含まれるスケジュールがひとつである保証はないが、本稿ではロジックの簡潔さを優先して、あえて1レコードのみを取得することにする。もしも1日の中にふたつ以上のレコードが存在する場合には任意の1レコードのみが取得され、2レコード目以降は無視されるので注意すること。
上記のコードでは、取得した結果に基づいて、Literalコントロールにクライアント・サイド・スクリプトを出力する。実際に出力されるクライアント・サイド・スクリプトは以下のような内容である。
|
|
Literalコントロール部分に出力されるクライアント・サイド・スクリプト |
つまり、ASP.NETから動的にクライアント・サイド・スクリプトを出力することで、あたかも事前にクライアント・サイドでスクリプトが用意されていたかのような挙動を実現できるのだ。
これはほんの一例にすぎないが、ASP.NETとクライアント・サイド・スクリプトを連携する好例でもあるので、よく理解できないという方も今一度確認してみてほしい。
また、Calendarコントロール自体、リッチ・コントロールの中でも最も有用な(また有名な)コントロールのひとつであるので、SDKドキュメントで詳細を参照しつつ、さまざまな応用例を考案してみるのもよい学習になるはずである。
INDEX | ||
ASP.NETで学ぶVisual Studio .NETの魅力 | ||
第4回 Visual Studio.NETでプログラム・レス開発を学ぶ(後編) | ||
1.Calendarコントロールで簡易予定表を作る | ||
2.予定を格納するデータベースの作成 | ||
3.Webユーザー・コントロールの作成 | ||
4.Webユーザー・コントロールを配置する | ||
「解説:ASP.NETで学ぶVisual Studio .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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|