C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: DataSetのあるカラムの値を日付時刻文字列に変換したい


(過去ログ 27 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■12288 / inTopicNo.1)  DataSetのあるカラムの値を日付時刻文字列に変換したい
  
□投稿者/ nbmyou (1回)-(2008/01/07(Mon) 17:50:05)

分類:[C#] 

いつも当掲示板ではお世話になっております。
初心者のnbmyouと申します。

VS2005のC#で、以下のようなプログラムを作成しています。

+++++
1. System.Data.DataSet型の戻り値が返ってくる、hoge()メソッドがある。
2. 1のメソッドを使用して得たDataSet型の戻り値を、あらかじめ用意してあるフォーム上のdataGridViewで表示させる。
3. その際、Timeカラム(DataTypeはSystem.String)には
  「西暦0年1月1日0時0分からの経過時間(100ミリ秒単位)」(DataTime.Ticksで得られる値と同じもの)が入っているが
  この値を"yyyy/MM/dd HH:mm:ss"形式に変換してから表示したい。
+++++

上記の3をどのように記述すれば実現できるのかがわからず、質問させていただきました。
現在のソースは、以下のようなものになっています。

+++++
// hoge()を使用し、DataSetオブジェクトを取得
DataSet ds = hoge();
// DataSetオブジェクトに「変換したTime」カラムを追加
DataColumn dCol = ds.Tables[0].Columns.Add("変換したTime");
// "変換したTime"カラムに、"Time"カラムの値を設定
dCol.Expression = "Time";
// DataSetオブジェクトの1つ目のテーブルを、dataGridView1のソースとして設定
dataGridView1.DataSource = ds.Tables[0];
+++++
「dCol.Expression = "Time";」のあたりで変換作業を行わなければならないと思うのですが、
その方法がわかりません。

ヒントでもいいので、お手数ですが教えていただけませんでしょうか?
よろしくお願いいたします。
引用返信 編集キー/
■12298 / inTopicNo.2)  Re[1]: DataSetのあるカラムの値を日付時刻文字列に変換したい
□投稿者/ 特攻隊長まるるう (114回)-(2008/01/07(Mon) 19:14:37)
No12288 (nbmyou さん) に返信
[DateTime コンストラクタ (Int64)]
http://msdn2.microsoft.com/ja-jp/library/z2xf7zzk(VS.80).aspx
引用返信 編集キー/
■12399 / inTopicNo.3)  Re[2]: DataSetのあるカラムの値を日付時刻文字列に変換したい
□投稿者/ nbmyou (2回)-(2008/01/09(Wed) 10:37:32)
No12298 (特攻隊長まるるう さん) に返信

回答、ありがとうございます。
DataSetやDataColumnのメソッドで一気に変換を行うことができないかな?と
思ったのですが、できなさそうですね。

特攻隊長まるるうさんからの回答を参考に、以下のようにすることで実現できました。
+++++
// hoge()を使用し、DataSetオブジェクトを取得
DataSet ds = hoge();
// DataSetオブジェクトに「変換したTime」カラムを追加
DataColumn dCol = ds.Tables[0].Columns.Add("変換したTime");
// "変換したTime"カラムに、"Time"カラムの値を変換して設定
foreach(DataRow dr in ds.Tables[0].Rows)
{
    DateTime dt = new DateTime((long)dr["Time"]);
    dr["変換したTime"] = dt.ToString("yyyy/MM/dd HH:mm:ss");
}
// DataSetオブジェクトの1つ目のテーブルを、dataGridView1のソースとして設定
dataGridView1.DataSource = ds.Tables[0];
+++++

以上です。どうもありがとうございました。

> ■No12288 (nbmyou さん) に返信
> [DateTime コンストラクタ (Int64)]
> http://msdn2.microsoft.com/ja-jp/library/z2xf7zzk(VS.80).aspx

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -