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

InfoPath & SQL Server !

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

with 4 comments

Microsoft Visual Studio 2013 を使えば、ノンコードで SQL Server に接続するデータベースアプリケーションを作ることができることを紹介した。前回「片手間プログラマーの復権 – Visual Studio 2013でクライアントサーバー型データベースアプリケーションをあっというまに作る(3) – 「検索条件ビルダー」を使ってキーワードによる選択クエリをノンコードで実装する」では、全文一致検索によってデータを絞り込むアプリケーションは「条件検索ビルダー」でノンコードで実装できることを紹介した。今回は、キーワードの「完全一致」ではなく、「前方一致」あるいは「後方一致」、「部分一致」で検索するフォームを作ってみよう。「前方一致」あるいは「後方一致」、「部分一致」を「条件検索ビルダー」を使って実装するには、SQL 文を LIKE 演算子で構成するとよい。

Visual Studio 2013 を起動し、新しいプロジェクトを作成する。言語はC#として Windows Form フォームアプリケーションを作ろう。

前方一致後方一致_001_mid_640

<Fig.1 : Visual Studio 2013 で Windows Form アプリケーションを作る新しいプロジェクトを始める>

次にデータ接続を作成しよう。画面の右端「データソース」タブを展開し、「新しいデータソースを追加」する。データソースの構成は「データソース構成ウィザード」で画面に従ってすすめる。説明は省略するが、画面ショットだけ紹介しよう。

前方一致後方一致_002_mid_640

<Fig.2 : 「データソース」タブを展開し「新しいデータソースの追加」をクリックして「データソース構成ウィザード」をはじめる>

前方一致後方一致_003_mid_640

<Fig.3 : 「データソース構成ウィザード」でデータソースの種類を選択する>

前方一致後方一致_004_mid_640

<Fig.4 : 「データソース構成ウィザード」でデータベースモデルを選択する>

前方一致後方一致_005_mid_640

<Fig.5 : 「データソース構成ウィザード」でデータ接続を選択する>

前方一致後方一致_006_mid_640

<Fig.6 : 「データソース構成ウィザード」で接続文字列をアプリケーション構成ファイルに保存する>

前方一致後方一致_007_mid_640

<Fig.7 : 「データソース構成ウィザード」でデータベースオブジェクトを選択する>

「データソース構成ウィザード」を終了すると、データソースに接続先の SQL Server のテーブルが表示される。「生徒」テーブルをデザインビューのフォームへドラッグし、データグリッドビューを作成しよう。データグリッドビューを作成したら、すべてのフィールドが表示されるようにデータグリッドビューを右に広げよう。

前方一致後方一致_008_mid_640

<Fig.8 : 「データソース構成ウィザード」でデータソースが構成できた>

前方一致後方一致_009_mid_640

<Fig.9 : 構成したデータソースから「生徒」テーブルをフォームにドラッグしてデータグリッドビューを作成する>

データグリッドビューが生成すると同時に、データ接続に関するオブジェクトが5つ生成する。データセット、バインディングソース、テーブルアダプター、テーブルアダプタマネージャー、そしてバインディングナビゲーターだ。このうち、生徒BindingSource または生徒TableAdapter、あるいはデータグリッドビューを選択して右上に表示される「スマートタグ」の小さな三角アイコン▲をクリックし「クエリの追加」をする。

前方一致後方一致_010_mid_640

<Fig.9 : スマートタグから「クエリの追加」を行う>

スマートタグから「クエリの追加」を行うと「条件検索ビルダー」ウィンドウが表示される。ここで絞り込む検索条件を次のように LIKE 演算子を使ってクエリテキストを編集しよう。

——————————————————————-
SELECT 学籍番号, 氏名, クラス, 住所, 性別, 性別コード FROM dbo.生徒
WHERE 氏名 LIKE @SelectNameLike
——————————————————————-

前方一致後方一致_011

<Fig.10 : スマートタグから「クエリの追加」を行い「条件検索ビルダー」を起動する>

前方一致後方一致_012

<Fig.11 : 「条件検索ビルダー」でクエリテキストを編集する>

クエリを設定するとフォームに fillByToolStrip が自動的に生成する。次にフォーム上にテキストボックスとボタンを作成し、ボタンのテキストを「前方一致」とする。そしてボタンのクリックイベントに次のコードを書く。SQL 文では「%」が任意の文字列をあらわすのだ。

——————————————————————-
try
    {
    this.生徒TableAdapter.FillBy(this.mYSQLSVDataSet.生徒, textBox1.Text + "%");
    }
catch (System.Exception ex)
    {
    System.Windows.Forms.MessageBox.Show(ex.Message);
    }
——————————————————————-

前方一致後方一致_013_mid_640

<Fig.12 : フォームにテキストボックスと「前方一致」のボタンを作る>

前方一致後方一致_014_mid_640

<Fig.13 : 「前方一致」ボタンのクリックイベントにコードを書く>

同様に「後方一致」と「部分一致」、「全件取得」のボタンを作成する。ボタンのクリックイベントにそれぞれ次のコードを書く。

<「後方一致」ボタンのクリックイベント>
——————————————————————-
try
    {
    this.生徒TableAdapter.FillBy(this.mYSQLSVDataSet.生徒, "%" + textBox1.Text);
    }
catch (System.Exception ex)
    {
    System.Windows.Forms.MessageBox.Show(ex.Message);
    }
——————————————————————-

<「部分一致」ボタンのクリックイベント>
——————————————————————-
try
    {
    this.生徒TableAdapter.FillBy(this.mYSQLSVDataSet.生徒, "%" + textBox1.Text + "%");
    }
catch (System.Exception ex)
    {
    System.Windows.Forms.MessageBox.Show(ex.Message);
    }
——————————————————————-

<「全件取得」ボタンのクリックイベント>
——————————————————————-
try
    {
    this.生徒TableAdapter.Fill(this.mYSQLSVDataSet.生徒);
    }
catch (System.Exception ex)
    {
    System.Windows.Forms.MessageBox.Show(ex.Message);
    }
——————————————————————-

前方一致後方一致_015_mid_640

<Fig.14 : 「後方一致」、「部分一致」、「全件取得」ボタンを作りクリックイベントにコードを書く>

ビルドしてテキストボックスに入力し、絞り込み検索を確かめる。

前方一致後方一致_016_mid_640

<Fig.15 : アプリケーションをビルドして「後方一致」、「部分一致」、「全件取得」の動作を確かめる>

このように前方一致、後方一致または部分一致のフォームを作るには、検索条件ビルダーで SQL 文を LIKE 演算子で絞り込むこととし、fillBy メソッドの文字列に SQL 文で任意の文字列を示す「%」を加えるといい。

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

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

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

Subscribe to comments with RSS.


コメントを残す

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

WordPress.com ロゴ

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

Twitter 画像

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

Facebook の写真

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

Google+ フォト

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

%s と連携中

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