Diskuze: LINQ to SQL - vymázání řádku z DataGridView
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Tvůrce
Zobrazeno 7 zpráv z 7.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Funguje to přesně jak říkáš. Asi máš jen nastavené označování na sloupce místo na řádky, proto v tom máš null. Psal jsem o DataGridView článek, koukni na něj - http://www.itnetwork.cz/…indows-forms.
Teď jsme zjistil ještě jednu věc. Ono se nemusí ani ta událost odchytávat a maže se to samo i v DB.
Ale následně je zde problém, resp. "vychytávka"(?) že závislé řádky nejdou smazat.
Tabulka Client
ID
Name
Tabulka Contracts
ID
ID_Client
...
A pokud chci smaazt Clienta, který má některé Contracty, aplikace spadne. Jak moc vysoká tedy je "abstrakce" DataContext, tedy LINQ to SQL ?
To bude spíše tím, že fyzicky existují cizí klíče, které tomu brání. To musíš nastavit při zakládání DB, jde tam nastavit něco jako cascade, aby to smazalo, asi tam máš restrict. Zkus to schválně smazat dotazem, IMHO to nepůjde stejně
No to bude asi tím, mám vytvořené relace mezi tabulkami. Grrr bude to asi na dýl se s tím naučit
Ještě jedna technická. DataGridView a její sloupce nemám nastavené v
Design ale přiřazuju až za běhu DataSource. Měl jsem za to že když mám v
DB sloupec id, název Cell bude také id. Což je správně. Ale když se to
snažím zjistit v metodě, která je callbackem event UserRowDelete tak to
spadne. Přitom při procházení přes Debug ty Cells jsou správně, tj je tam
Cell s názvem id.
nevíš kde by mohla být chybka ?
Tak jsem na to přišel. Je to trochu divný. Při eventu UserRowDeleted je ten řádek smazaný, má index -1 ale přitom v Row (tedy objektu), veškeré Cells jsou vyplněné včetně jmen. Nechápu tedy že to spadne. Každopádně při eventu UserRowDeleting se to chová tak jak se očekává.
Zobrazeno 7 zpráv z 7.