Linq to datasets dbnull chyba   otázka

LINQ, Algoritmy

Dobrý den, používám linq to datasets a narazil jsem na chybu se kterou si nevím rady. Potřebuju vyfiltrovat zaznamy, abych je mohl upravit. Filtrování probíhá podle sloupce PSČ. A tady je právě ta chyba, sloupec psč je typu integer a AllowNulls:YES. Při spuštění linq dotazu vyskočí chyba konverze dbnull na integer. Setkal se s tím někdo z vás? Proč mu vadí záznamy s psc=null, když hledám konkrétní hodnoty?

pro úplnost, tady je ten dotaz:

Dim players = From h In SqlDataSet.Hraci Where h.PSC = oldValue Select h
            For Each p In players 'tady dojde k chybě
                
            Next

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

Ahoj

Protože hodnota NULL ( resp. vbNULL ) není integer, proto mu to vadí

Nerozumím moc tomu For Each ...

ale já bych to napsal asi takhle :

Dim x as Integer

For p = 0 to počet_players

Try

x = hodnota z tabulky

Catch

'Do Nothing ;)

End Catch

Next

Věřím, že to jde udělat i jinak, ale v tomhle se zase tak moc nevyznám :)

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

No, místo typu Integer byste měl používat typ Integer? (s tím otazníkem to je integer, který povoluje i hodnotu Nothing).

Co se týče konstrukce For Each, funguje jednoduše. LINQ dotaz vrátí do proměnné players kolekci objektů, kde každý objekt je jeden hráč. To, co je uvnitř For Each cyklu se spustí pro každý prvek této kolekce a k tomu prvku přistupujete přes proměnnou p. Takže si uvnitř cyklu vytáhnete třeba p.Jmeno nebo tak.

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