トビウオは捕れるけどサンマは捕れない松江からこんにちは。
こちらは逆引きではなく順方向での理解が必要な VB.NET 要素について紹介する記事シリーズです。
今回は一般的な DataTable の用法を示します。文中の dt は DataTable 型変数とします。
- DataTable は列指向です
- dt.Rows でデータにアクセスできます
- dt.Columns で列情報にアクセスできます
- dt.Rows.Count でデータ件数を得られます
- dt.Columns.Count で列数を得られます
- dt.Columns(x).DataType で列 x のデータ型が得られます
- 1行目の1列目のデータは dt.Rows(0)(0) で得られます、ただしこのデータには有効な型情報が無い場合があり、その際は能動的に型指定が必要です
- 型指定は CType(dt.Rows(0)(0), String) のように記述し、これで1行目1列目のデータを String 型と見做して取得できます
- 型指定は、データが空の場合には失敗します
- データが空であるかどうかは、判定用メソッドを用いて IsDBNull(dt.Rows(0)(0)) のようにして判定でき、空の場合には True になります
- "id" という数値型のカラムが存在したとすると、dt.Select("id = 1234") で id が 1234 のデータを検索でき、結果として DataRow() 型変数が得られます(見つからなければ長さが 0 になります)
- 検索の別法として (From row In dt.AsEnumerable() Where row("id") = 1234 Select row).ToArray() でも結果は同じで、こちらの記法の方が高速(データ件数が多い場合の処理時間が短い)と言われています
- データに有効な型情報が無いケースでは (From row In dt.AsEnumerable() Where row.Field(Of Integer)("id") = 1234 Select row).ToArray() のように Field() を使用して型指定をします