前回は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 Air
Priceが30000以上の製品が出力されました。
コメント