2013-03-26 41 views
0

,當我得到這個例外,當我運行從字符串轉換日期和/或時間時,我的ASP Web應用程序C#轉換失敗轉換日期/時間

轉換失敗。 當我調試我在下面的一段代碼得到錯誤 所有關於日期的變量都是DATETIME格式。

for (int j = 0; j < mapdate.Count; j++) 
{ 
    string mapstartend = "Select Id,CDateTime from MAP1 where Product='" + pro[allpromap] + "' and ProgDate= '" + mapdate[j]+ "' and Channel='" + mapChannel[allmap] + "'"; 
    SqlCommand mapdat = new SqlCommand(mapstartend, conn); 
    SqlDataReader mapdatrdr = mapdat.ExecuteReader(); 
    while (mapdatrdr.Read()) 
    { 

     mapiddate.Add(mapdatrdr["Id"].ToString(), mapdatrdr.GetDateTime(1)); 
    } 
    mapdatrdr.Close(); 
} 
+9

你是開放的[** SQL注入**](HTTP:// msdn.microsoft.com/en-us/library/ms161953(v=sql.105).aspx),請使用['sql-parameters'](http://msdn.microsoft.com/zh-cn/library/system .data.sqlclient.sqlparameter.aspx)!如果'mapdate'是一個'DateTime []'它也可以解決這個問題。 – 2013-03-26 16:31:52

+1

CDateTime是否爲NULL?它看起來不像你正在檢查。 – Tejs 2013-03-26 16:31:59

+0

你可以粘貼幾個樣本值形式mapdate列表? mapdate的類型是什麼?另外什麼是執行? – Dhawalk 2013-03-26 16:33:53

回答

0

你的日期字段是什麼格式?

使用嘗試:

Convert.ToDateTime(mapdatrdr["CDateTime"].ToString()); 
2

如果是這樣的問題,那麼它應該與

DateTime.Parse()

工作,但如果你使用的TryParse它會更好()來檢查字符串是否有效。

看到here更多信息如何使用它

0

試試這個

mapdatrdr.GetDateTime(columnIndex).ToString("dd MMM yyyy"); 

它應該工作

相關問題