【C#】VisualStudioでデータセットデザイナーを使ってDataSetを登録しLINQでアクセスする方法

C# データセットデザイナーを使ってLINQでアクセス

前回はDataSetの基本について解説しました。

今回はVisual Studioのデータセットデザイナーを使ってDataSetを登録し、LINQでアクセスする方法を解説していきます。

目次

データセットデザイナーでDataSetを登録してみる

まずは、プロジェクトを選択→右クリックから追加新しい項目DataSetを追加します。

DataSet1.xsdという名前で登録されるので、追加からDataTableを選択。DataSet1.xsdはDataSetApple.xsdに変更しておきます。

ここでは、Productsという名前のDataTableを作成しました。

続いて、NameとPriceという名前のDataColumnを追加。

それぞれのDataColumnはプロパティが用意されており、DataTypeSystem.StringSystem.Int32に変更しておきます。

DataSetクラスを使ってデータを作成

サンプルコード

// DataSetAppleクラスを使う
var dsApple = new DataSetApple();

// NewProductsRowでインスタンスを作成
var product3 = dsApple.Products.NewProductsRow();
var product4 = dsApple.Products.NewProductsRow();
var product5 = dsApple.Products.NewProductsRow();

// プロパティとしてアクセスできる
product3.Name = "Apple Watch";
product3.Price = 40000;

product4.Name = "Apple Pencil";
product4.Price = 20000;

product5.Name = "iPad Air";
product5.Price = 60000;

// dsApple.Productsプロパティへを追加
dsApple.Products.AddProductsRow(product3);
dsApple.Products.AddProductsRow(product4);
dsApple.Products.AddProductsRow(product5);

LINQを使ってアクセス

DataTableクラスのAsEnumerableメソッドを使えば、IEnumerableを実装するEnumerableRowCollectionクラスが返されるので、LINQでアクセスすることが可能になります。

サンプルコード

// LINQを使ってアクセスする
var names = dsApple.Products.AsEnumerable().Where(e => e.Price >= 30000).Select(e => e.Name);
foreach (string n in names)
{
    Console.WriteLine(n);
}

実行結果

Apple Watch
iPad Air

Priceが30000以上の製品が出力されました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

都内の精密機器を作っている会社に勤務している14年目のエンジニアです。趣味は美味しいものを食べることとゴルフ。プログラムについて今まで学んだことをわかりやすく発信するサイトを目指しています。

コメント

コメントする

目次
閉じる