• 締切済み

VB.NET DataTableについて

質問失礼します。 VB.Netで、テーブルに格納されたデータをDataTableを利用し、SQLを実行、抽出してきました。 その結果から、さらに抽出したいのですが、方法がわかりません。 dataに格納したものは、問題なく抽出できています。(データセットビジュアライザーで確認済み) 以下、 番号 名前 合計 1 りんご 10 2 ぶどう 20 3 りんご 30 の、ように3行結果が取れました。 そこから、名前が重複していル値があるかどうか、またその数を確認したいです。 (りんごが、2行ある) この方法がどうしてもわからず、 Dim rows As DataRow() から rows = data.Select("名前 = りんご") とすれば、りんごが2行あると数がわかりますが、 これが、りんごとは、限らないため、 重複している名前があるか、どうかを調べたいところです。 勉強して、まだ浅く、わかりづらい説明で申し訳ありませんが、ご回答のよろしくお願いします。

みんなの回答

  • dell_OK
  • ベストアンサー率13% (766/5720)
回答No.2

すみません、訂正です。 後ろに .ToList() をつけた方が確認しやすかったです。 ---- Dim grp = tbl.AsEnumerable().GroupBy(Function(x) x.Item("名前")).Select(Function(x) New With {Key .名前 = x.Key, .件数 = x.Count}).ToList() ----

  • dell_OK
  • ベストアンサー率13% (766/5720)
回答No.1

こんな感じでしょうか。 Stop したところで grp の内容を確認してみてください。 ※私のテストコードなので、直接DataTableを作っていますが、確認できると思います。 ---- Dim tbl = New DataTable() tbl.Columns.Add("番号", GetType(Integer)) tbl.Columns.Add("名前", GetType(String)) tbl.Columns.Add("合計", GetType(Integer)) tbl.Rows.Add(1, "りんご", 10) tbl.Rows.Add(2, "ぶどう", 20) tbl.Rows.Add(3, "りんご", 30) Dim grp = tbl.AsEnumerable().GroupBy(Function(x) x.Item("名前")).Select(Function(x) New With {Key .名前 = x.Key, .件数 = x.Count}) Stop ----

関連するQ&A