[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í)
RowFiltr v LINQ TO SQL
Vloženo uživatelem: Neregistrovaný uživatel: Jirka02 (IP uloženo)
Datum: 08. 07. 2008 09:43

Dobrý den,

nemůžu příjít na to, jak v LINQ TO SQL udělat pomocí DataView RowFiltr. S DataSety jsem s tím niky problém neměl. Jde to vůbec?
Děkuji.

Re: RowFiltr v LINQ TO SQL
Vloženo uživatelem: JakubMuller (Jakub Müller) - uživatel již zaslal 2818 příspěvků (IP uloženo)
Datum: 08. 07. 2008 10:49

Pokud vim, tak ne.
Linq to Sql funguje jen pro dotazy do MsSql.

________________________________
Dokonalost je v jednoduchosti.

Re: RowFiltr v LINQ TO SQL
Vloženo uživatelem: Neregistrovaný uživatel: Jirka02 (IP uloženo)
Datum: 08. 07. 2008 12:27

Třída DataView má v konstrukturu jako parametr DataTable, takže by se to podle mě snad dalo odstínit od konkrétní databáze. Mimo to, datasety také plním z MSSQL databáze, takže v tom bych problém neviděl.

Re: RowFiltr v LINQ TO SQL
Vloženo uživatelem: JakubMuller (Jakub Müller) - uživatel již zaslal 2818 příspěvků (IP uloženo)
Datum: 08. 07. 2008 12:30

DataView je filtracni & radici obal nad DataTable.
Filtraci i razeni se definuje pomoci stringu. Tento string pouziva syntaxi blizke SQL, ale neni to SQL. Takze LINQ to SQL v tomto pripade nejde pouzit.

Samozrejme muzes ofiltrovat zaznam z MSSQL a tak je nacist do DataTable ( alespon doufam, nepouzivam to ). Ale to pak filtrujes jinde nez v DataView.

________________________________
Dokonalost je v jednoduchosti.

Re: RowFiltr v LINQ TO SQL
Vloženo uživatelem: JardaJirava (Jarda Jirava) - uživatel již zaslal 215 příspěvků (IP uloženo)
Datum: 08. 07. 2008 13:14

Ahoj,

uz jenom to zadani je dosti kostrbate. Linq2sql slouzi pro
dotazovani a s dataview nema cokoliv spolecneho. (Jak jiz zminil
Jakub).

Pokud jsi tedy dokazal "nacpat" vysledek dotazu z linq2sql do
dataview, potom muzes pracovat s dataview stejne, jako kdykoliv
predtim bez linq2neco.

V pripade, ze nemas data v dataview a myslel jsi to jen jako
prirovnani, tak samozrejme muzes pouzit extension metody a na vysledek
dotazu z linq2sql tyto aplikovat a tim zajistit "rowfilter", pomoci
prislusne extenzni metody Where.

Mozna by stalo za to, ukazat, co vlastne potrebujes a kde k takovemu
cinu ma u tebe v kodu dojit.

Pekny den

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

Příspěvek zaslán emailem

Re: RowFiltr v LINQ TO SQL
Vloženo uživatelem: Neregistrovaný uživatel: Jirka02 (IP uloženo)
Datum: 08. 07. 2008 15:32

Těť mi můj dotaz připadá taky poměrně nesmysleně popsaný. A to jsem si ho před vložením 2x přečetl. Omlouvám se.
Zmíněné DataSety byli jenom jako příklad. Problém je skutečně v tom, že nevím, jak výsledek z LINQ dostat do DataView. V LINQ TO SQL data bohužel filtrovat nemůžu, protože tak nejde použít ekvivalent "LIKE", který se v DataView použít dá. Na úrovni databáze se LIKE použít nehodí, protože by tím zbytečně trpěla.

Re: RowFiltr v LINQ TO SQL
Vloženo uživatelem: JakubMuller (Jakub Müller) - uživatel již zaslal 2818 příspěvků (IP uloženo)
Datum: 08. 07. 2008 15:35

Jirka02 Napsal:
-------------------------------------------------------
> Těť mi můj dotaz připadá taky poměrně nesmysleně
> popsaný. A to jsem si ho před vložením 2x přečetl.
> Omlouvám se.
> Zmíněné DataSety byli jenom jako příklad. Problém
> je skutečně v tom, že nevím, jak výsledek z LINQ
> dostat do DataView. V LINQ TO SQL data bohužel
> filtrovat nemůžu, protože tak nejde použít
> ekvivalent "LIKE", který se v DataView použít dá.

Neda? Ja bych rekl, ze ano, a tutorialy na internetu to taky tvrdi.

> Na úrovni databáze se LIKE použít nehodí, protože
> by tím zbytečně trpěla.

Databaze tim trpet nebude. Databaze to udela mnohem efektivneji, nez DataView. Trpet bude naopak prenos dat a RAM stanice/webserveru, kdyz se bude prenaset zbytecne mnoho dat z DB a pak teprve filtrovat, prestoze to pujde udelat primo v dotazu.

________________________________
Dokonalost je v jednoduchosti.

Re: RowFiltr v LINQ TO SQL
Vloženo uživatelem: Neregistrovaný uživatel: Jirka02 (IP uloženo)
Datum: 09. 07. 2008 09:33

JakubMuller Napsal:
-------------------------------------------------------
> Databaze tim trpet nebude. Databaze to udela
> mnohem efektivneji, nez DataView. Trpet bude
> naopak prenos dat a RAM stanice/webserveru, kdyz
> se bude prenaset zbytecne mnoho dat z DB a pak
> teprve filtrovat, prestoze to pujde udelat primo v
> dotazu.

Jde o tzv. dynamický filtr, výstižnějsí název mě momentálně nanapadá. Funguje tak, že uživateli se zobrazí například 100 položek v DataGridView a nad každým sloupcem je TextBox a podle toho jak do něj píše mu položky postupně ubývají...jak z TextBoxu maže, tak se mu tam ty položky zase zpátky vracejí. Bylo by to několik dotazů za vteřinu a to je opravdu hodně = aplikace by se jevila pomalejší.



Re: RowFiltr v LINQ TO SQL
Vloženo uživatelem: Mi.Chal - uživatel již zaslal 9498 příspěvků (IP uloženo)
Datum: 09. 07. 2008 09:36

Jirka02 Napsal:
-------------------------------------------------------
> Jde o tzv. dynamický filtr, výstižnějsí název mě
> momentálně nanapadá. Funguje tak, že uživateli se
> zobrazí například 100 položek v DataGridView a nad
> každým sloupcem je TextBox a podle toho jak do něj
> píše mu položky postupně ubývají...jak z TextBoxu
> maže, tak se mu tam ty položky zase zpátky
> vracejí. Bylo by to několik dotazů za vteřinu a to
> je opravdu hodně = aplikace by se jevila
> pomalejší.

to vlakno jsem necetl takze moc nevim, co se tu resi :-), ale nemel by v tom byt nejaky vetsi problem. V nejmene jednom IS to delaji taky - akorat bys nemel ty data tahat hned, ale treba vterinu po tom, co prestanou psat (nebo cekat treba na enter). Pak tech dotazu opravdu tolik nebude, pokud budes vracet treba jenom tu prvni stovku




Pro vkladani kodu slouzi tag Code.
________________________________________________
Odpovedi na nejcastejsi zdejsi otazky najdete na
http://www.4itdevelopers.net/faq_at_builder.aspx

Re: RowFiltr v LINQ TO SQL
Vloženo uživatelem: JakubMuller (Jakub Müller) - uživatel již zaslal 2818 příspěvků (IP uloženo)
Datum: 09. 07. 2008 10:01

Jirka02 Napsal:
-------------------------------------------------------
> Jde o tzv. dynamický filtr, výstižnějsí název mě
> momentálně nanapadá. Funguje tak, že uživateli se
> zobrazí například 100 položek v DataGridView a nad
> každým sloupcem je TextBox a podle toho jak do něj
> píše mu položky postupně ubývají...jak z TextBoxu
> maže, tak se mu tam ty položky zase zpátky
> vracejí. Bylo by to několik dotazů za vteřinu a to
> je opravdu hodně = aplikace by se jevila
> pomalejší.

Zalezi na tom, jak to naimplementujes.
Jestlize udelas nejaky select, jehoz vysledek si nekam nacachujes ( nedes se narocnosti. ty data si stejne ukladas do RAM, kdyz je dostavas na desktop + zaberes spousta dalsi pameti kvuli rozlozeni do objektoveho grafu + spousta dalsi rezie kvuli vykreslovani ). Tak pak muzes ten filtr aplikovat na tento vyber.

Moznosti je spousta. Nicmene bych ti pro tento pripad doporucoval to DataView, jelikoz to je nejjednodusi a v budoucnu se to da lehce predelat na neco jineho.

________________________________
Dokonalost je v jednoduchosti.

Re: RowFiltr v LINQ TO SQL
Vloženo uživatelem: Neregistrovaný uživatel: Jirka02 (IP uloženo)
Datum: 10. 07. 2008 08:53

JakubMuller Napsal:
> Moznosti je spousta. Nicmene bych ti pro tento
> pripad doporucoval to DataView, jelikoz to je
> nejjednodusi a v budoucnu se to da lehce predelat
> na neco jineho.

Mám stejný názor a taky pořád stejný problém. Jak dostat výsldek z LINQ TO SQL do DataView? Všude se řeší jenom LINQ na DataSety a to pak dostat do DW samozřejmě není problém. Na MSDN jsem nic nenašel a ani nikde jindesad smiley





Re: RowFiltr v LINQ TO SQL
Vloženo uživatelem: JakubMuller (Jakub Müller) - uživatel již zaslal 2818 příspěvků (IP uloženo)
Datum: 10. 07. 2008 10:07

LINQ to SQL nepouzivam. Jestli se nepletu, tak vysledky ziskas ve forme kolekce objektu nadefinovanych v nejakem tom designeru, ze?

Nevim, jestli to chces univerzalne nebo pro nejaky konkretni pripad. Ale ve hre jsou v podstate tyto aspekty.
+ narocnost implementace
+ mnozstvi zaznamu
+ efektivita pri behu

Cesty mas tedy ctyri.

Bud pri zmene podminky se vzdy dotazovat do databaze ( vhodne v pripade, ze se jedna o velke mnozstvi zaznamu ).
- vhodne pro velke mnozstvi zaznamu

Nebo si udelat vedlejsi kolekci pro ten grid, do ktere vzdy zkopirujes ty objekty, ktere odpovidaji filtru.
- pomerne jednoducha implementace

Nebo tyto objekty prevedes do DataTable, nad kterou udelas tebou pozadovane DataView.
- pomerne jednoducha implementace, ale nizsi efektivita oproti predchozimu navrhu

Nebo pouzijes rozhrani "IBindingListView" v nejake sve tride ( nejspis odvozene z kolekce tech objektu ) a naimplementujes ty filtracni & radici metody.
- narocnejsi implementace, v podstate stejny vysledek jako u dvou kolekci


Opravte/doplnte me nekdo jestli se v necem mylim ci jsem na neco zapomnel.

________________________________
Dokonalost je v jednoduchosti.

Re: RowFiltr v LINQ TO SQL
Vloženo uživatelem: JardaJirava (Jarda Jirava) - uživatel již zaslal 215 příspěvků (IP uloženo)
Datum: 10. 07. 2008 10:53

Ahoj,

dovolil jsem si nejake ty svesticky ze sve zahradky smiling smiley
http://jirava.net/blog/archive/iqueryable-do-dataview.aspx

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