【C#】forを使ってデータテーブルから行を取得する【DataTable】
forで行を取得する(index)
今回のループ処理は for文を使用します。
for 文の指定は、以下の内容とします。
・initializer セクションは、0 から始める。
・condition セクションは、dt.Rows.Count の件数分繰り返しを行う。
・iterator セクションは、カウントアップさせる。
ここでは、行を取得した後、 HINMEI(品名) をコンソールに出力するようにしていきます。
// データテーブルの初期化
DataTable dt = new DataTable();
// データテーブルの名前を指定
dt.TableName = "FRUIT";
// 列追加
dt.Columns.Add("HINMEI");
dt.Columns.Add("SURYO");
dt.Columns.Add("TANKA");
dt.Columns.Add("KINGAKU");
// 行追加
dt.Rows.Add("りんご", "3", "50", "150");
dt.Rows.Add("ぶどう", "1", "200", "200");
dt.Rows.Add("みかん", "10", "30", "300");
/*
今回の内容はここから
*/
// forで行を取得する(index)
for (int i = 0; i < dt.Rows.Count; i++)
{
Console.WriteLine(dt.Rows[i]["HINMEI"]);
}
// ログ出力内容
// りんご
// ぶどう
// みかん
forで行を取得する(DataRow)
dt.Rows にインデックス指定をして、 DataRowを取得します。
取得したDataRowの HINMEI(品名) を コンソールに出力していきます。
※for 文は変わらないため、説明を省略します。
// データテーブルの初期化
DataTable dt = new DataTable();
// データテーブルの名前を指定
dt.TableName = "FRUIT";
// 列追加
dt.Columns.Add("HINMEI");
dt.Columns.Add("SURYO");
dt.Columns.Add("TANKA");
dt.Columns.Add("KINGAKU");
// 行追加
dt.Rows.Add("りんご", "3", "50", "150");
dt.Rows.Add("ぶどう", "1", "200", "200");
dt.Rows.Add("みかん", "10", "30", "300");
/*
今回の内容はここから
*/
// forで行を取得する(DataRow)
for (int i = 0; i < dt.Rows.Count; i++)
{
DataRow dr = dt.Rows[i];
Console.WriteLine(dr["HINMEI"]);
}
// ログ出力内容
// りんご
// ぶどう
// みかん
コピペですぐ試せるソースコード
上記で記載した2点のソースコードをまとめました。
ソースコードをコピペするとそれぞれの動作が確認できると思います。
private void DataTable_Get_Rows_For()
{
DataTable dt = new DataTable();
// データテーブルの名前を指定
dt.TableName = "FRUIT";
// 列追加
dt.Columns.Add("HINMEI");
dt.Columns.Add("SURYO");
dt.Columns.Add("TANKA");
dt.Columns.Add("KINGAKU");
// 行追加
dt.Rows.Add("りんご", "3", "50", "150");
dt.Rows.Add("ぶどう", "1", "200", "200");
dt.Rows.Add("みかん", "10", "30", "300");
/*
今回の内容はここから
*/
// forで行を取得する(index)
for (int i = 0; i < dt.Rows.Count; i++)
{
Console.WriteLine(dt.Rows[i]["HINMEI"]);
}
// ログ出力内容
// りんご
// ぶどう
// みかん
// forで行を取得する(DataRow)
for (int i = 0; i < dt.Rows.Count; i++)
{
DataRow dr = dt.Rows[i];
Console.WriteLine(dr["HINMEI"]);
}
// ログ出力内容
// りんご
// ぶどう
// みかん
}
まとめ
今回は複数の方法で、ループ処理で行を取得するソースコードを記載しました。
用途にあったやり方、自分のやりやすい実装を採用していきましょう。
Microsoft 公式ページ
DataRowCollection クラス
https://docs.microsoft.com/ja-jp/dotnet/api/system.data.datarowcollection?view=netframework-4.0
for (C# リファレンス)
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/for
お問い合わせ先
Twitterの利用再開しましたのでお問い合わせのある方はTwitterまでご連絡ください。
最近のコメント