[Grafika] [WebTip] [Fotografování] [Galerie] [MujMac] [Printing]
  Redakce: info@builder.cz   Inzerce: reklama@grafika.cz

 Diskuzní forum: .Net

Téma diskuze: Diskuze o technologii .NET; C# atd.

Tip: nemáte rádi v textu smajlíky? Ruší vaše zdrojové kody? Vypněte si je! (Moje nastavení / Nastavení soukromí)
LINQ + SQL + datagridview - ulozeni zmen do db
Vloženo uživatelem: Neregistrovaný uživatel: fido84 (IP uloženo)
Datum: 16. 04. 2008 03:02

Mam db s ulozenyma procedurama. Spojeni s db mam pres LINQ.
Z db bez problemu nactu do datagridu data.
Kdyz zmenim zaznamy v gridu - nejake smazu, nejake pridam a nasledne potvrdim metodou SubmitChanges(), tak se do db ulozi pouze zmeny zaznamu, odstranene a nove zaznamy se v db neobjevi. sad smiley

Nevite nekdo, jak na to, nebo v cem muze byt chyba?

RE: LINQ + SQL + datagridview - ulozeni zmen do db
Vloženo uživatelem: RSTEIN - uživatel již zaslal 106 příspěvků (IP uloženo)
Datum: 16. 04. 2008 12:17

Tak tady se da jen tipovat => podle me nesdilite stejny Datacontext pro vsechny operace. Jestlize se jedna o jednothreadovou Windows forms aplikaci, klidne vytvorte jeden globalni (singleton) kontext.



Zdravim
Rene Stein
http://blog.renestein.net




Příspěvek zaslán emailem

Re: RE: LINQ + SQL + datagridview - ulozeni zmen do db
Vloženo uživatelem: Neregistrovaný uživatel: fido84 (IP uloženo)
Datum: 16. 04. 2008 13:14

Mam vytvorenou 1 instanci DataContextu, nad kterou provadim dane operace.Kdyz zavolam deleteOnSubmit(...), tak zaznam smaze.
Pripada mi, jak by z kolekce odstranil zaznam, ale neponechal si informaci, ze ho ma odstranit i z db.

RE: RE: LINQ + SQL + datagridview - ulozeni zmen do db
Vloženo uživatelem: RSTEIN - uživatel již zaslal 106 příspěvků (IP uloženo)
Datum: 16. 04. 2008 13:25

Zkusil jste se podivat, jak vypada changeSet zasilany do databaze? Patricne kolekce vrati metoda GetChangeSet DataContetxu.

Zdravim
Rene Stein
http://blog.renestein.net

Příspěvek zaslán emailem

Re: RE: LINQ + SQL + datagridview - ulozeni zmen do db
Vloženo uživatelem: JardaJirava (Jarda Jirava) - uživatel již zaslal 215 příspěvků (IP uloženo)
Datum: 16. 04. 2008 13:31

Ahoj,

a jak je napojeny datagrid? Jedes pres bindingsource a odchytavas si
nove pridane a smazane objekty a ty predavas datacontextu? DataContext
umi drzet stav jen objektu, ktere "pres nej prosly" a to jen zmeny.
Nikoliv uz zadost o jejich vymaz, to mu musis dat sam najevo, ze neco
chces odebrat.

Pekny den

Jarda Jirava, Microsoft MVP - Client Application, MCAD, MCPD
http://jirava.net/blog

Příspěvek zaslán emailem

Re: RE: LINQ + SQL + datagridview - ulozeni zmen do db
Vloženo uživatelem: Neregistrovaný uživatel: fido84 (IP uloženo)
Datum: 16. 04. 2008 15:25

V tom bude asi ten problem. Mam to napojene pres bindingsource.
Jeslti muzu jeste poprosit o radu... Jak nejlepe zjistim, ktery zaznam se maze/pridava?

Dekuji moc, Petr Maslan

RE: RE: LINQ + SQL + datagridview - ulozeni zmen do db
Vloženo uživatelem: RSTEIN - uživatel již zaslal 106 příspěvků (IP uloženo)
Datum: 16. 04. 2008 15:51

Na BindingSource mate udalost ListChanged.
Pri vyvolani udalosti zjistite v e. ListChangeType, jaka zmena nastala a pote muzete zjistit index polozky, ktere se tyka (e.newIndex). V podkladovem listu (BindingSource.List) muzete polozku pres indexer dohledat a poslat jako argument metodam DataContextu.


Zdravim
Rene Stein
http://blog.renestein.net


Příspěvek zaslán emailem

Re: RE: RE: LINQ + SQL + datagridview - ulozeni zmen do db
Vloženo uživatelem: Neregistrovaný uživatel: fido84 (IP uloženo)
Datum: 16. 04. 2008 16:10

Diky moc...

Re: RE: RE: LINQ + SQL + datagridview - ulozeni zmen do db
Vloženo uživatelem: Neregistrovaný uživatel: fido84 (IP uloženo)
Datum: 16. 04. 2008 17:23

Presto jsem narazil jeste na problem u mazani.
Kdyz odstranim zaznam, pak pri udalosti ListChanged jiz tento zaznam neni v BindingSource.List, takze nemam moznost zjistit, ktery zaznam se odstranil sad smiley

RE: RE: LINQ + SQL + datagridview - ulozeni zmen do db
Vloženo uživatelem: RSTEIN - uživatel již zaslal 106 příspěvků (IP uloženo)
Datum: 16. 04. 2008 17:53

Obecne si lze drzet kopii odkazu v jinem listu, ktery neni pripojen k prvku a pak ho podle indexu dohledate.

Jestlize mate DatagridView, muzete odchytavat udalost DataGridViewRowsRemoved a v ni mate dostupny RowiIndex mazaneho radku.
Pres mygrd.Rows[e.RowIndex] se dostanete k radku => podkladovy objekt radku je ve vlastnosti row.DataBoundItem.

Zdravim
Rene Stein
http://blog.renestein.net
Příspěvek zaslán emailem

Re: LINQ + SQL + datagridview - ulozeni zmen do db
Vloženo uživatelem: Neregistrovaný uživatel: Libor Nenadál (IP uloženo)
Datum: 04. 07. 2008 09:54

Já mám možná trochu jiný problém - vygeneroval jsem si O/R entity přes sqlmetal (používám SQL Server CE) a když si vytvořím entitu přes new Entita(), tak ačkoli na ni nezavolám InsertOnSubmit(), tak je asi automaticky do data contextu přidaná a následně mi pak při SubmitChanges() vyletí exception, protože jsem nenaplnil mandatory pole. Nevíte někdo, jak to přesně funguje?
Novou entitu vytvářím proto, abych si na ni nabindoval form, ale když mi pak uživatel nevyplní mandatory pole, tak tu entitu chci prostě zahodit a neposílat do databáze.

Re: LINQ + SQL + datagridview - ulozeni zmen do db
Vloženo uživatelem: JardaJirava (Jarda Jirava) - uživatel již zaslal 215 příspěvků (IP uloženo)
Datum: 04. 07. 2008 10:00

Ahoj,

a nepridas danou entitu do EntitySetu? Mozna by potesil kod, ktery
toto dela, ale nekde tu entitu s contextem nejspise provazujes.

Pekny den

Jarda Jirava, Microsoft MVP - Client Application, MCAD, MCPD
http://jirava.net/blog

Příspěvek zaslán emailem



Vaše jméno: 
Váš e-mail: 
Předmět: 

:-)  :-(  ;)  :D  :S  spatne  dobre  bold  italic  email  citace  odkaz  obrazek 
Antispam ochrana u neregistrovaných uživatelů - opište čísla z obrázku:
  

Toto fórum je provozováno také jako emailová konference s e-mailovou adresou net [a] builder.cz.
Podrobný návod jak se k odběru zpráv e-mailem přihlásit naleznete v tomto návodu.




  



Toto je neredigovaná a nemoderovaná diskuse čtenářů serveru Builder.cz. Redakce ani provozovatel serveru za obsah jednotlivých příspěvků nenese zodpovědnost.

info@builder.cz
Vydává Grafika Publishing, s.r.o.
Copyright (c) 1997-2005 Všechna práva vyhrazena
Pro diskuzní fóra využíváme software z phorum.org