ホチキス先生の「プログラマーと呼ばれたい」

InfoPath & SQL Server !

片手間プログラマーの復権 – Visual Studio 2013でクライアントサーバー型データベースアプリケーションをあっというまに作る(3) – 「検索条件ビルダー」を使ってキーワードによる選択クエリをノンコードで実装する

with 5 comments

前回の記事「片手間プログラマーの復権 – Visual Studio 2013でクライアントサーバー型データベースアプリケーションをあっというまに作る(2) – テーブル接続一対一アプリケーションの作成手順」で Visual Studio 2013 を使えば SQL Server のテーブルに対して1対1で接続するアプリケーションは、ノンコードであっという間に作ることができる手順を紹介した。しかし、データが少ない場合はともかく、たいていの場合テーブルにストアされているデータを全部いちどに取得することは考えにくい。なんらかのキーを使って選択して取得することが必要だ。データセットにキーワードをパラメーターとして渡す、いわゆる「パラメータクエリ」の実装だ。

Visual Studio 2013 の「検索条件ビルダー」を使えば、単純キーワードでデータを選択して取得するフォームをノンコードで作ることができる。

前回作ったフォームのデザインビューで、下部のデータ接続関係のオブジェクトが並んでいるところに「生徒TableAdapter」という名前のテーブルアダプターがある。これをマウスでポイントすると、右上に「スマートタグ」と呼ばれる小さな三角アイコン▲が表示される。これをクリックすると「生徒TableAdapterタスク」というタスクの一覧が表示される。ここで「クエリの追加」をクリックする。

VS2013_30_query_003_mid_640

<Fig.1 : 「生徒TableAdapterタスク」で「クエリの追加」をする>

「検索条件ビルダー」のウィンドウが表示されるので「クエリテキスト」に絞り込みたい検索条件を SQL 文で記述する。記述式の例文がウィンドウ下部にあるので、それにならって式を作ろう。ここでは「性別」をキーワードにして「男」か「女」かを絞り込むことにし、次のような式を書く。

SELECT 学籍番号, 生徒氏名, 性別, 作成日, 更新日 FROM dbo.生徒 WHERE 性別 = @SelectSeibetsu

SQL 文のステートメントは大文字小文字を区別しない。また改行して記述しても連続した一文とみなされる。@のパラメータ名は自分で好きなものを決めればいい。

VS2013_30_query_005

<Fig.2 : 「検索条件ビルダー」で選択条件クエリを実装する>

やるべきことはこれだけだ。「OK」を押してデザインビューに戻ると、フォームに新しいメニューが自動的に生成し、下部には「fillByToolStrip」が生成したことがわかる。

VS2013_30_query_006_mid_640

<Fig.3 : フォームに「fillByToolStrip」が生成した>

ビルドしよう。fillByToolStrip のテキストボックスに「男」や「女」を入力して「FillBy」をクリックすると、男だけ、女だけのデータが絞り込まれて表示される。

VS2013_30_query_008

<Fig.4 : fillByToolStrip で男だけのデータを絞り込むことができた>

このように「検索条件ビルダー」を使えば、このようなパラメータクエリをノンコードで実装できる。これまでデータベースアプリケーションを作ることが難しいと断念していた者は、ぜひ試してほしい。

<前の記事>
片手間プログラマーの復権 – Visual Studio 2013でクライアントサーバー型データベースアプリケーションをあっというまに作る(2) – テーブル接続一対一アプリケーションの作成手順

<次の記事>
片手間プログラマーの復権 – Visual Studio 2013でクライアントサーバー型データベースアプリケーションをあっというまに作る(4) – 「検索条件ビルダー」を使ってキーワードによる「前方一致」、「後方一致」、「部分一致」検索を実装する

コメント / トラックバック5件

Subscribe to comments with RSS.


コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。