Я вставляю в таблицу БД Oracle, используя следующую строку вставки (Приблизительно - там 140 столбцов, поэтому я не буду показывать все это):
"INSERT INTO AMS_ASSET_CS_IFACEOUT VALUES ('abcdef', 'abcdef', to_date (' 2010-01-31 ',' YYYY-MM-DD '), ...) "
Затем через пару секунд я запускаю следующий фрагмент кода:
/// <summary>
/// Function: GetRecord
/// Description: Creates a new AMS-Asset and populates the
/// properties of this asset by evaluating properties provided
/// by the OracleDataReader.
/// </summary>
/// <param name="reader"> One record of information from the open connection.</param>
/// <returns> A fully created AMS-Asset record. </returns>
private static AmsAsset GetRecord(OracleDataReader reader)
{
AmsAsset newRecord = new AmsAsset();
for (int propertyIndex = 0; propertyIndex < reader.FieldCount; propertyIndex++)
{
string propertyName = reader.GetName(propertyIndex).ToLower();
string propertyValue = reader.GetValue(propertyIndex).ToString();
int propertyValueAsInteger = 0;
bool isPropertyAnInteger = Int32.TryParse(propertyValue, out propertyValueAsInteger);
if (isPropertyAnInteger)
{
newRecord.GetType().GetProperty(propertyName).SetValue(newRecord, propertyValueAsInteger, null);
}
else
{
newRecord.GetType().GetProperty(propertyName).SetValue(newRecord, propertyValue, null);
}
}
return newRecord;
}
Значение даты, которое я вставил в свою базу данных, теперь возвращается как «31.01.2010 12:00:00».
Я не совсем уверен, почему ... Какие у меня варианты?Нужно ли просто кодировать преобразование из формата, который мне возвращают, в ISO
С уважением,
Шон Андерсон