【C#】LINQを使ってデータベースを扱う方法

Visual Studioでデータベースを作成

Visual Studioでは「サービスベースのデータベース」というものがあり、ローカルにデータベースを作成できるようです。

今回の記事はデータベースを作成する手順は省略していますが、例えば以下のような商品名や商品の値段がかいてあるデータベースを作りました。
visual studio database

このデータベースの作成自体は手入力ですが、X円以下の商品を検索したりするときにLINQを使うと簡単に目的の商品が見つけらえるようです。

LINQとは

LINQは小難しくてよくわかっていないのですが、foreachのパワーアップ版ととらえておけばよいようです。LINQにはクエリ構文とメソッド構文がありどちらでも好きなほうを選べばよいようですが。メソッド構文を使う場合はラムダ式の理解が必要です。

LINQのクエリ構文にはたくさんの構文があるとは思いますが、おもにつかう4つを覚えておけばいようです。

LINQのクエリ構文
  • from → データを取り出す
  • where → 取り出すデータを条件で指定
  • orderby → 表示するデータを指定
  • select → 抽出時に処理できる

データセットをLINQで扱えるようにする手順

データセットをLINQで扱えるようにするには以下の手順が必要です。

  1. ツールボックスからdatasetをドラッグ&ドロップして配置
  2. ツールボックスからBindingSourceをドラッグ&ドロップして配置
  3. datasetのプロパティでdatasetnameを指定
  4. BindingSourceのプロパティでDataMemberとDataSourceを指定する
  5. C#のコードを書く

ツールボックスからdatasetとbindingsourceを配置する

ツール
datasetとbindingsoureをツールボックスから選択してFormの下のほうに配置します。

datasetとbindingsourceのプロパティを設定する

dataset プロパティ
datasetプロパティでは作成したdatasetの名前を指定し、bindingsourceプロパティでは作成したdatasetの名前とテーブルを指定しています。

C#のコードを書く

bindingsourceを利用することによってC#でデータセットを扱えるようになります。このアプリケーションはWindowsアプリケーションですので全部コードを書くと量が多くなってしまうのでLINQを使用してデータ抽出するコードを抜粋して書きたいと思います。

var query = from rs in database1DataSet1.Table
            where rs.Price > 150000
            orderby rs.Name
            select rs;
bindingSource1.DataSource = query;

このコードをボタンなどに実装して、コードを実行すると

dataset アプリ

150000円以上の商品が抽出されました。

まとめ

LINQでデータベースをあつかうにはbindingSourceというツール(Visual Studioのツールボックスにある)を使えばよいみたいです。最初のデータベースの作成は省いていますので、とりとめのない記事になってしまいました。

LINQで目的の商品を検索できるのはすごいですね。エクセルでできそうな気もしますが・・・。


Warning: Undefined array key "thumbnail_url" in /home/users/1/boy.jp-rolpop/web/skc/wp-content/themes/godios/inc/schema-org.php on line 49

Warning: Undefined array key "thumbnail_url" in /home/users/1/boy.jp-rolpop/web/skc/wp-content/themes/godios/inc/schema-org.php on line 78