Datareader a hodnota typu boolean   zodpovězená otázka

C#, ASP.NET WebForms, ADO.NET, Databáze

Zdravím,

už minule jsem dostal odpověď na mojí otázku, zkusím to tedy znova.

Mám nějaký projekt v ASP.NET ana jedné stránce vypisuji obsah z DB.

V jednom kroku bych potřeboval zjistit obsah položky datareader která je buď true nebo false.

Zatím jsem to řešil takto, ale příjde mi to značně "kostrbatý".

Jakpak je to správně?

                string a =DataReader2["SmallBig"].ToString();
                if (a=="True" )
                {


Todle je jediný co mi šlo, jinak prostě jsem to neudělal.

Díky za Vaše odpovědi

Karel

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pokud je hodnota datareader typu boolean,tak proč potom převádíte na string?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Je to blbý, ale nevím jak se mám na ní zeptat :-(

Zkoušel jsem to různě, bohužel nevím přesně jak.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pokud se jedna o DataReader a objekt je typu boolean pak stačí přetypovat na bool např. bool a = (bool)DataReader2["SmallBig"];

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Já spíš nerozumím tomu proč to děláte takto,respektive čeho chcete docílit..mám takový pocit,že nejdete úplně správnou cestou

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Dneska asi nemám svůj den :-)

V databázi mám kromě dalších pole "SmallBig"

Jeho hodnota je buď TRUE nebo FALSE, tzn. typ bool

Ve stránce kterou píši potřebuji provést různé věci podle toho zda hodnota platí nebo neplatí, takže potřebuju správný zápis tohodle.

jestliže dataReader2["SmallBig"] je True

potom todle

jinak tamto.

udělaný to mám teď takto:

if (dataReader2["SmallBig"].ToString()=="True" )

{ Todle}

else

{Tamto}

Aneb - musím přetypovat proměnou abych se zeptal zda platí?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Je to samozřejmě čistší a lepší řešení,nicméně to lze řešit i tak jak máte nyní

nahlásit spamnahlásit spam 0 odpovědětodpovědět

A opět si potvrzuji že nemám svůj den :-)

Zapoměl jsem napsat...

Problém je v tom že pokud to nepřevedu, tak se mi na to nejde zeptat..

Prostě mi nejde napsat jen

if (dataReader2["SmallBig"])

{

}

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Takto to určitě nepůjde,to je logické.Buďto to musíte převést na typ boolean a pak můžeme použít tuto syntaxi anebo použijete již napsané řešení,tedy převední na string a porovnání

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Kdybych to vyoslil hned na začátku, měl bych odpověď mnohem dříve, každopádně děkuji moc za Váš čas a trpělivost..

S pozdravem Karel Láska

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Ještě byste to mohl přetypovat pomocí metody Boolean.Parse(value).Místo value dosadíte výstup z datareaderu(tj.true | false) a v rámci if-u již pak můžete použít "zkrácenou" syntaxi

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback