0

データベースの数行をテキスト ドキュメントに書き出しています。日付フィールド以外はすべて設定しました。MM-dd-yy に変更する必要がありますが、取得し続ける結果は DB のデフォルトであり、MM/dd/yyy HH:mm:ss (7/8/2013 2:01:05 PM) です。日付列はテーブルの真ん中にあり、if ステートメントを追加することから 3 つの部分に分割することまで、考えられるすべてのことを試してきましたが、どれも日付列だけを変更するものではありません。以下は、データを取得して書き込む方法です。次に、2 つの int、文字列、日付、文字列、およびもう 1 つの int が表示されます。注文は日付を変更するだけで問題ありません。

編集:すべての正しいデータを書き込みますが、日付が希望どおりに表示されないだけです。

foreach (DataRow row in jackTDataSet.Tables[0].Select(quer))
{
    foreach (object item in row.ItemArray)
    {
            writer.Write(String.Format("{0,-10}", item.ToString() + ""));
    }
    writer.WriteLine("\t");
}
4

1 に答える 1

0

他の列の 1 つが DateTime として解析され、MM-dd-yy 形式でフォーマットされる可能性があるというリスクを冒しても、このようなことを行うことができます。個人的には、これに関する反復をやり直します。IF **クエリですべての列を選択していて、それが静的で変更されていない場合(これはおそらくわかりませんが、ここにすべてのオプションを入れています)、2番目のforループに表示されている列名に基づいて反復できますこの郵便受け。

foreach (object item in row.ItemArray)
{
     DateTime parsed;
     if (DateTime.TryParse(item.ToString(), out parsed))
     {
          writer.Write(String.Format("{0,-10}", parsed.ToString("MM-dd-yy") + ""));
     }
     else 
     {
          writer.Write(String.Format("{0,-10}", item.ToString() + ""));
     }
}



foreach (DataColumn col in jackTDataSet.Tables[0].Columns)
{
     if (col.ColumnName == "Name of date Field ")
     {
         writer.Write(String.Format("{0,-10}", ((DateTime)row[col.ColumnName]).ToString("MM-dd-yy") + ""));
     }
     else 
     {
         writer.Write(String.Format("{0,-10}", row[col.ColumnName].ToString() + ""));
     }
}
于 2013-07-09T22:11:41.480 に答える