我有一个特定的数据行,当我试图读取特定的日期列时,它会引发此错误-“Year、Month和Day参数描述了一个不可表示的DateTime”。
我正在拉入几百行数据,除了这一行之外,它们都正常工作。我可以从这一有问题的行中拉入除这一个datetime列之外的其他列。我正在使用oracle数据读取器从数据库中获取datetime,我可以使用Visual Studio中的监视工具检查要读入的行。我试图读入一个日期时间,并具有它的所有属性。
while (reader.Read())
{
var temp = new FCCondition();
temp.CaseID = reader.GetString(0);
temp.Statute = reader.GetString(1);
if (!reader.IsDBNull(2))
temp.DueDate = reader.GetDateTime(2);
if (!reader.IsDBNull(3))
temp.HoursAssigned = reader.GetInt32(3);
if (!reader.IsDBNull(4))
temp.HoursCompleted = reader.GetInt32(4);
temp.JWConditionID = reader.GetString(5);
if (!reader.IsDBNull(6))
temp.StartDate = reader.GetDateTime(6);
if (!reader.IsDBNull(7))
temp.StatusDate = reader.GetDateTime(7);
if (temp.DueDate <= temp.StartDate)
temp.DueDate = temp.StartDate.AddMonths(18);
FCConditionsList.Add(temp);
}
}
在阅读StartDate(reader.GetDateTime(6))时抛出错误。我尝试将其存储在var中,并将其与reader.GetOracleDate和reader.GetValue一起使用,但它们仍然抛出相同的错误。
我尝试读入的日期时间值为:6/7/2017 5:16:41 PM我已经在watch工具尝试读取该columnx 1c 0d1x之前的状态中添加了该工具的屏幕截图
2条答案
按热度按时间zpjtge221#
我怀疑
GetDateTime
调用不需要AM/PM符号。因此,它可能无法将其识别为有效的日期/时间。请尝试以下操作:编辑:今天我自己也遇到了同样的问题,并以不同的方式解决了它......我使用的是Oracle数据访问托管客户端
k7fdbhmy2#
我也在与这个问题作斗争。在我的例子中,我正在从一个旧的Oracle DB中阅读一个
DateTime?
字段,它以dd MMM yy HH:mm
提供给我,这会使我的C#
代码出错。我的解决方案如下...