konwersja typu object na int

0

Witam,
mam pytanie - czy mozna w jakis sposob przekonwertowac typ object na int?

int Ratyid = (int)reader[0];
niestety wywala bląd: "Szczegóły wyjątku: System.InvalidCastException: Określone rzutowanie jest nieprawidłowe."

z gory dziekuje za pomoc

0

Convert.ToInt32(object)

a jeśli to nie pomoże to można tak nie wiem czy to rozwiązanie jest w 100% skuteczne, ale ja robiłem to tak (i mi działało)

Convert.ToInt32(object.ToString())

0

Jakiego typu jest reader ?

0

:d dziala
Convert.ToInt32() nie wywalilo bledow

Dzieki wielkie za pomoc ;]

adf88: reader jest typu object

0
Thesauri napisał(a)

adf88: reader jest typu object
Czyżby ? object nie posiada operatora [] :>
W każdym razie reader[0] nie jest zakuapsułkowanym (boxed) int'em więc rzutowanie się nie powiodło i dlatego potrzebna jest konwersja.

0

adf88: pod tym reader[0] ukryty byl int wyciagniety z bazy danych.

W sumie mam jeszcze jedno pytanie - tym razem nie chodzi o konwersje, a formatowanie DateTime wyciagnietego z bazy danych.

Musze wyswietlic tylko date - bez czasu. Najlepiej w formie BulletedList (aczkolwiek nie upieram sie przy tym) , ale nie bardzo mam pomysl jak to zrobic.
Probowalam w samym zapytaniu z DateTime zmienic go na varchar obcinajac godzine.

Select  'rozpoczecie'= CAST(k.data_1_spotkania AS varchar(11)) (...) 
from kursy k (...);

ale to nie daje niestety porzadanego efektu - wyswietla "IX 18 2008" (jezyk w bazie danych mam ustawiony na polski, baza SQL Server 2005)

Kolejne podejscie to zmiana kontrolki na DataList i fotmatowanie Eval

<asp:DataList ID="lista_kursow" runat="server" >
        <ItemTemplate>
              <%# Eval("Data_najblizszego_kursu","{d MMMM YYYY (dddd)}")%>
         </ItemTemplate>
</asp:DataList>

Kwerenda juz bez kombinacji - zwykly DateTime.
To jednak wywalilo blad "Szczegóły wyjątku: System.FormatException: Nieprawidłowy format ciągu wejściowego."
Jak skasuje ten dodatkowy parametr Eval to wyswietla standardowo np."2008-09-18 00:00:00" (czyli blad jest spowodowany proba formatowania).

0

Jak z bazy to był to pewnie Int64, nie int (Int32).

Co do pytania powyżej - nie znam się na ASP, ale coś mi się ten format nie podoba. Nie powinno być po prostu "(d)" ?

0

po prostu d tez nie dziala, probowalam :/

1 użytkowników online, w tym zalogowanych: 0, gości: 1