2013-05-05 67 views
0

我有以下的列:为什么日期时间转换为字符串得到我的错误:ORA-01843:不是有效的月份

CheckingTime 
------------ 
1 7/5/2011 
2 
3 
4 5/8/2012 

(该colomn格式为date) 我使用一个DataReader来阅读所有colomns和行的DB1,并将其插入到DB 2如下:

while (dr.Read()) 
{ 
string finalratingdate = ((dr[19] != DBNull.Value) ? Convert.ToString(dr[19]) : ""); 
} 

所以,当插入它应该,检查是否有一个的DBNull如果不是,插入值,如果是插入“”,但事情是我得到以下错误:

System.Data.OracleClient.OracleException:ORA-01843:不是有效月份

我只在datetimes变量中得到这个错误。所有其他变量我能够将它们转换为字符串并插入它们。

你有什么想法吗?

谢谢

回答

0

我相信异常,表明你的数据库中的列是Date型的,它不能容纳空字符串。您的声明中不要使用空字符串,而应该使用null初始化变量,这将使您能够在Date列中设置空值。所以,你的说法应该是:

string finalratingdate = ((dr[19] != DBNull.Value) ? Convert.ToString(dr[19]) : null); 

我真的不知道为什么你一个DateTime字段转换为字符串数据库,你应该使用参数化查询,并添加DataTime对象作为参数,而不是将其转换为字符串。

+0

感谢您的回复。我尝试了你的建议,我仍然收到相同的错误:System.Data.OracleClient.OracleException:ORA-01843:不是有效的月份 我正在将一个datime转换为字符串,因为我在DBNulls的十进制colomns并将值转换为字符串纠正了该问题。现在我尝试了与datetime colomns相同,但没有成功 – user2272080 2013-05-05 12:31:35

相关问题