2013-07-09 35 views
0

我正在寫出數據庫中的幾行文本文檔。除日期字段外,我已設置了所有內容。我需要將其更改爲MM-dd-yy,但是我得到的結果是數據庫中的默認值,即MM/dd/yyy HH:mm:ss(2013年7月8日下午2:01:05)。日期列位於表格的中間,我一直在嘗試所有可以從添加if語句將其分解爲三個部分但不改變日期列的所有內容。以下是我如何提取數據並編寫它。然後顯示2個整數,一個字符串,日期,一個字符串和一個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"); 
} 
+0

您是否嘗試使用MessageBox.Show或Response.Write檢查值? – Learner

回答

0

你可以做這樣的事情,無論你有多運行其他列的一個可能被解析爲一個DateTime的風險,並獲得格式MM-DD-YY。個人會重做你的迭代。如果您正在選擇查詢中的所有列,並且它是靜態的並且不會更改(我不太可能知道這一點,但在此輸出所有選項),您可以根據第二個循環中顯示的列名進行迭代這個帖子。

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() + "")); 
    } 
} 
+0

工作出色。我打電話給所有的專欄,現在它是靜態的。謝謝。 – user2566242

+0

很高興能幫到你! – Bearcat9425