前回はDataSetの基本について解説しました。
今回はVisual Studioのデータセットデザイナーを使ってDataSetを登録し、LINQでアクセスする方法を解説していきます。
目次
スポンサーリンク
データセットデザイナーでDataSetを登録してみる
まずは、プロジェクトを選択→右クリックから追加→新しい項目でDataSetを追加します。

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

ここでは、Productsという名前のDataTableを作成しました。
続いて、NameとPriceという名前のDataColumnを追加。
それぞれのDataColumnはプロパティが用意されており、DataTypeをSystem.StringとSystem.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 AirPriceが30000以上の製品が出力されました。

コメント