2013-03-26 44 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"); 

它应该工作

相关问题