- - PR -
データテーブルを出力したい
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-03-07 10:43
今、テーブルの中身をログ(txtファイル)に出す仕組みをつくっているのですが、
データは出力できるのですが、フィールド名が取れません。 書き方が良くないとか、そもそも呼び出し方が違うとかあるかもしれないので、 そのあたりも含めてご指導いただきたいと思います。 以下のコードはテーブルの中身を取り出すものです。 public string OutputTable(DataTable dt) { StringBuilder sb = new StringBuilder(); try { foreach (DataRow dr in dt.Rows) { for (int i = 0; i < dr.ItemArray.Length; i++) { if (dr.ItemArray[i] != null) { sb.Append(dr.ItemArray[i].ToString() + ","); } else { sb.Append("NULL,"); } } sb.Append("\r\n"); } return sb.ToString(); } catch { return "テーブルデータ出力エラー"; } } | ||||||||||||
|
投稿日時: 2007-03-07 10:51
ゴメンナサイ、インデントが抜けてました。。。
public string OutputTable(DataTable dt) { StringBuilder sb = new StringBuilder(); try { foreach (DataRow dr in dt.Rows) { for (int i = 0; i < dr.ItemArray.Length; i++) { if (dr.ItemArray[i] != null) { sb.Append(dr.ItemArray[i].ToString() + ","); } else { sb.Append("NULL,"); } } sb.Append("¥r¥n"); } return sb.ToString(); } catch { return "テーブルデータ出力エラー"; } } | ||||||||||||
|
投稿日時: 2007-03-07 11:14
データテーブル作るときに設定していれば、フィールド名はRows(行)ではなくColumns(列)にあります。
| ||||||||||||
|
投稿日時: 2007-03-07 11:25
これはテキストファイル?というよりは CSV ファイルでしょうかね。 あと、たぶん書き忘れなのだと思いますが、フィールド名を取って『どうする のか』が示されていないと、皆さんも答えようがないのではないかと。 # と思ったら未記入さんが書いてました と言ってもそれでは困るので、エスパー伊東をフル稼働して少し考えてみ ました。要するに
という感じに出力したい、と? とりあえずこんな感じでどうでしょうか。環境がどこにも書いていなかったの で C# 2.0 で作りましたが、違う場合は適宜変更してください。
_________________ ぽぴ王子@わんくま同盟 ぽぴ王子の人生プログラミング中 / ぽぴンち。 | ||||||||||||
|
投稿日時: 2007-03-07 13:19
ぽぴ様
ありがとうございます。 まさに、おっしゃる通りでした。 考え方が違ったみたいですね。 列のループをしなくちゃ取れないと。 ありがとうございました。 |
1