Добрый день! Видел много вопросов по этому поводу но ответа так и не нашёл
вот мой код
connection.Open();
OracleCommand command = connection.CreateCommand();
string sql="select t2.NAME, Round((cast(localtimestamp as date) - cast(t4.CREATED as date))*24*60,2) ,t3.NAME,localtimestamp from MFSTRANSPORTORDER t1 left join MFSTRANSPORTUNIT t2 on t2.ID=t1.TRANSPORTUNIT_ID left join MFSSTORAGELOCATION t3 on t3.ID=t2.STORAGELOCATION_ID left join MFSTRANSPORTORDERREQUEST t4 on t2.ID=t4.TRANSPORTUNIT_ID where t3.NAME is NOT NULL";
command.CommandText = sql;
OracleDataReader reader = command.ExecuteReader();
var lst = new List<Data>();
if (reader.HasRows)
{
while(reader.Read()){
var row = new Data();
row.Name = reader.GetString(0);
if(!reader.IsDBNull(1))
row.Time = reader.GetDouble(1);
row.Place = reader.GetString(2);
row.dt = reader.GetDateTime(3);
}
int g = lst.Count;
Data []temp=new Data[g];
temp = lst.ToArray();
}
connection.Close();
В строке запроса меня интересует второй столбец
Round((cast(localtimestamp as date) - cast(t4.CREATED as date))*24*60,2)
При выволнении
row.Time = reader.GetDouble(1);
появляется ошибка
SystemInvalidCastException: Specified cast is not valid
В этом поле должно быть число вида 2,45
Как убрать эту ошибку?
Как насчет того, чтобы узнать настоящий тип значения, а потом вызвать соответствующий метод?
reader.GetFieldType(1)
Возможно, там лежит decimal:
reader.GetDecimal(1)
Виртуальный выделенный сервер (VDS) становится отличным выбором
Для того, чтобы отобразить свойства и поля моего класса в PropertyGrid, я для них задаю атрибуты PropertyGridНапример :