Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

datagrid

[es] :: .NET :: datagrid

[ Pregleda: 4481 | Odgovora: 19 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mmmm

Član broj: 14893
Poruke: 46
*.proxy.cg.yu



Profil

icon datagrid11.10.2003. u 22:09 - pre 218 meseci
Moze li neko da mi objasni (ili me uputi na neki text na netu) koriscenje datagrid kontrole - trebam da neke podatke prikazem u datagridu, vidio sam primjer koji je microsoft dao uz vs.net, ali ga nesto ne kapiram primjer :(

Pozdrav
 
Odgovor na temu

degojs

Član broj: 4716
Poruke: 5096



+51 Profil

icon Re: datagrid11.10.2003. u 22:46 - pre 218 meseci
Verovatno najlakše je da podatke dovučeš u DataSet a onda prikažeš u DataGrid kontroli. Kako da popuniš DataSet podacima iz baze imaš uputstvo ovde na forumu (jedna od TOP tema). Posle je dovoljno da DataGrid1.DataSource svojstvo podesiš da pokazuje na neku tabelu u dataset-u.

Commercial-Free !!!
 
Odgovor na temu

mmmm

Član broj: 14893
Poruke: 46
*.proxy.cg.yu



Profil

icon Re: datagrid12.10.2003. u 19:30 - pre 218 meseci
Dobro to sam uspio da povezem, sad me interesuje sljedece:

1. Moze li se dataset-u pristupati proizvoljno - dakle da se ne puni automatski iz baze, nego da ja mogu da mu ubacam nove podatke nezavnisno od baze (nesto kao Array - ili da array prebacim u dataset)? (i da brisem redove i sl.?)

2. Postoji li mogucnost da se brise kolona iz dataset-a (kompletna kolona - recimo kolona "Ime")?

3. postoji li mogucnost da otvorim bazu, prebacim jednu tabelu u dataset, odradim odredjene operacije na datasetu (brisanje nekih kolona i redova), i onda povezem dataset sa datagridom?

4. postoji li mogucnost da nekako koristim staru Grid kontrolu (iz starog VB6 gdje mogu fino da podesim svaki aspekt grid-a - broj redova, broj kolona, da direktno pristupan svakom polju iz grid-a...) - ovo pitam jer je VB.NET napravio veliku automatizaciju u odnosu na stari VB6 po pitanju koje sam gore postavio (otvrotiti tabelu, povezati je sa datasetom, povezati dataset sa datagridom se moze izvesti u svega nekoliko linija koda), ali meni ovaj pristup ipak ne odgovara. Prije svega mislim da je datagrid kontrola ruzna! Zato sto kad se ubaci vise tabela u datagrid, mora da se klikne posebno na + sa lijeve strane da bi datagrid expandovao spisak tabela koje sadrzi (tek nakon klikanja na plusic korisnik vidi koje ima tabele) - meni treba jednostavna old-fashion old-style Grid kontrola.

Pozdrav
 
Odgovor na temu

veljaradenkovic
Velja Radenkovic
Beograd

Član broj: 2977
Poruke: 281
*.ptt.yu

ICQ: 147120023


Profil

icon Re: datagrid12.10.2003. u 21:57 - pre 218 meseci
Nemoras ni da pravis data set za to sto oces, a moze da ti posluzi DataTable .
Code:

Dim dt as DataTable 
dt= new DataTable("Tabela") 'Pravis tabelu njeno ime je tabela

dt.Columns.Add("Kolona1") 'Dodajes dve kolone i u navodnicima su njihova imena
dt.Columns.Add("Kolona2")
 
dim red as DataRow '
red=dt.NewRow()    'Pravis novi red

red("Kolona1")="Prvi red prva kolona" 'dodeljujes vrdnost celiji (1,1)
red("Kolona2")="Prvi red druga kolona" '---------||---------------

dt.Rows.Add(red) 'dodajes ove celije sto si napravio za prvi red

Posle vrednosti odredjene celije mozes da pristupis preko indexa:
Code:
dt.rows(0).item(0)="Ova celija je imala vrednost prvi red prva kolona a sad sadrzi sve ovo"


Vidi sredi malo ovo ...

2. Ne moze da se brise kolona iz DataSeta nego iz dataTablea koji je sadrzan u dataSetu.
Code:
MyDataTable.Columns(indeks kolone koju oces da brises)._Metodu nadji sam_


3. postoji! Ko sto sam ti reko gore...

Code:
MyDataSet.Tables(0).Rows(1).Item(2)="Nesto"


Dakle "Nesto" bi se naslo u prvoj tabeli u dataSetu (Moze da ih sadrzi i vise i svasta jos); u drugom redu te tabele; treca kolona....

Podrazumeva se da element koji zelis postoji inace Object refernce not set...

4..... Moze.

Nemoj da je ruzna! Kad je izaberes, mislim u designeru vidi ispod Properties Window-a da li ima nest kao Auto format. Klikni pa vidi sta tamo ima... Inace to sve mozes (mislim na osobine koje odredjuju izgled) da podesis rucno.

Sto se tice plucica oni ti odrazavaju strukturu samog dataset-a... Moze to i drukcije.

Ovakve stvari se obicno lako nadju u dokumentaciji a internet da ne pominjem ...

No razumem te

Aj sad na google pa kad nesto zapne pitaj.


 
Odgovor na temu

dotnet
Beograd

Član broj: 4344
Poruke: 112
*.vdial.verat.net

Jabber: dotnet@elitesecurity.org


Profil

icon Re: datagrid12.10.2003. u 22:23 - pre 218 meseci
Pozdrav

Za pocetak kada je DataSet u pitanju pogledaj TOP temu http://www.elitesecurity.org/tema/12371
dotnet
 
Odgovor na temu

mmmm

Član broj: 14893
Poruke: 46
*.proxy.cg.yu



Profil

icon Re: datagrid13.10.2003. u 00:01 - pre 218 meseci
Hvala svima :) (a posebno Velji), a sad opet nekoliko pitanja:

1. posto povezem datagrid sa datatable, a neka polja u datatable su prazna, ali ih datagrid umjesto praznih prikazuje kao (Null) sto me nervira (zasto ih jednostavno ne ostavi prazna) - moze li se kako natjerati datagrid da ih prikazuje kao prazne a ne kao (Null)?

2. kad povezem datatable da datagrid, kako tada da nekim kolonama u datagridu promijenim sirinu (i sl.)?

3. postoji li mogucnost da odjednom ucitam vise tabela iz neke baze u dataset (po mogucnosti sve) a ne jednu po jednu, a da onda lagano obradjujem te podatke?

Pozdrav

ps
nevezano od ovoga - da ne zna neko kako da iz VB.NET-a procitam temperaturu procesora, kucista, broj obrtaja CPU fan-a i sl. (nesto kao MotherBoard Monitor)?
 
Odgovor na temu

Deep|Blue
Srce Srbije

Član broj: 631
Poruke: 1431
*.ptt.yu

ICQ: 101830817


+314 Profil

icon Re: datagrid13.10.2003. u 01:00 - pre 218 meseci
1. laksa varijanta je da u select naredbi kojom vuces podatke iz baze koristis naredbu ISNULL . Teza formatiranje datagrida

2. Formatiranje datagrida. za svaku kolonu imas svojstvo columnmaping

3. Kako mislis da napravis select upit kojim bi povukao podatke iz svih tabela u bazi?
Ne bih rekao da moze


"Hmmm", rekao je, "...suprostavlja se nadrealizmu prikrivene metafore..." Razmišljao je tome na trenutak, a onda je zatvorio beležnicu s mrkim osmehom.
"I smrt je za njih suviše dobra"
 
Odgovor na temu

dotnet
Beograd

Član broj: 4344
Poruke: 112
*.vdial.verat.net

Jabber: dotnet@elitesecurity.org


Profil

icon Re: datagrid13.10.2003. u 01:20 - pre 218 meseci
3.
Code:
SELECT * FROM Tabela1; SELECT * FROM Tabela2;...;SELECT * FROM TabelaN

dotnet
 
Odgovor na temu

degojs

Član broj: 4716
Poruke: 5096



+51 Profil

icon Re: datagrid13.10.2003. u 04:00 - pre 218 meseci
Citat:
3. postoji li mogucnost da odjednom ucitam vise tabela iz neke baze u dataset (po mogucnosti sve) a ne jednu po jednu, a da onda lagano obradjujem te podatke?


Uvek imaj na umu da tvoja baza podataka sa vremenom može i da naraste značajno i potpuno je neprihvatljivo prevlačiti gomilu podataka da bi se obrađivali na klijentu. Baza pored čuvanja podataka, služi i za vršenje operacija nad istim, a na klijent treba dovlačiti uvek minimalan skup podataka. Preporučio bih da malo pogledaš neku literaturu za programiranje baza podataka koristeći naravno SQL.

Pozdrav.
Commercial-Free !!!
 
Odgovor na temu

degojs

Član broj: 4716
Poruke: 5096



+51 Profil

icon Re: datagrid13.10.2003. u 04:15 - pre 218 meseci
Citat:
1. posto povezem datagrid sa datatable, a neka polja u datatable su prazna, ali ih datagrid umjesto praznih prikazuje kao (Null) sto me nervira (zasto ih jednostavno ne ostavi prazna) - moze li se kako natjerati datagrid da ih prikazuje kao prazne a ne kao (Null)?


Null jeste null i u principu ga ne bi trebalo dirati. Ako je već do prikaza "problem" može lepo da se reši i upotrebom kursora na strani baze, ali to je već tema za database forum.
Commercial-Free !!!
 
Odgovor na temu

veljaradenkovic
Velja Radenkovic
Beograd

Član broj: 2977
Poruke: 281
*.ptt.yu

ICQ: 147120023


Profil

icon Re: datagrid13.10.2003. u 07:32 - pre 218 meseci

Degojs citat:

Baza pored čuvanja podataka, služi i za vršenje operacija nad istim, a na klijent treba dovlačiti uvek minimalan skup podataka. Preporučio bih da malo pogledaš neku literaturu za programiranje baza podataka koristeći naravno SQL.

Potpisujem se ispod ovoga!

Evo ti iz koda:

Code:

Dim i, q As Integer |
        For i = 0 To NekiDataTable.Rows.Count - 1 |
            For q = 0 To NekiDataTable.Columns.Count - 1 |
                If NekiDataTable.Rows(i).Item(q) Is System.DBNull.Value Then |
                    NekiDataTable.Rows(i).Item(q) = "Ovaj cell je DbNull" |
                End If |
            Next |
        Next |


Ovom cellu sto je DBNull dodelis vrednost "" i ne prikazuje nista...

Tek sad vidim kako se izlomi kod ... Steta sto nema ; u VB-u

Stavicu ti | na kraj svakog reda...

 
Odgovor na temu

degojs

Član broj: 4716
Poruke: 5096



+51 Profil

icon Re: datagrid13.10.2003. u 07:57 - pre 218 meseci
Hm, Velja, ono što si me citirao.. nije mi baš jasno, ako može objašnjenje šta sam pogrešio u vezi sa prevlačenjem podataka?

Što se tiče ovog sa Null vrednostima, OK je, ali recimo ako kasnije treba ponovo da prođeš kroz DataSet -- kako ćeš znati koje su vrednosti bile null pre nego što si stavio u njih prazan string "" ? Odnosno, šta ako si u bazi imao neka polja koja su null, a neka baš "" ? Svakako, ako je samo do prikaza, nema problema (isto kao ni ono sa kursorom što sam ja pomenuo - princip je isti, samo što se u slučaju rada sa kursorima posao obavi u bazi, što i nije toliko bitno). Ja bih null ostavio kao null: ako posle ide Update, null vrednosti će biti izgubljene u bazi, zar ne? Možda mu nije ni bitno, a možda ni ne radi update posle :)

Pozdrav.
Commercial-Free !!!
 
Odgovor na temu

Velja79

Član broj: 11233
Poruke: 4
*.ppp-bg.sezampro.yu



Profil

icon Re: datagrid13.10.2003. u 09:31 - pre 218 meseci
Izvini sto su moje reci mozda dobile pogresan kontekst.

Hteo sam da se potpisem ispod tvog teksta i na taj nacin kazem da 100% podrzavam to sto si reko i da je to nacin kako se radi.



P.S. Ovo je registracija koju delimo ja i kolega sa posla Ime je moje a prezime njegovo... da ne dodje do zabune...
 
Odgovor na temu

degojs

Član broj: 4716
Poruke: 5096



+51 Profil

icon Re: datagrid13.10.2003. u 09:58 - pre 218 meseci
hahahahaha e ovo je bilo dobro :) Ma skontao sam čak i ja posle šta je, al' me prvo malo preseklo kad sam video ono "POTPISUJEM SE ISPOD OVOG!" pa posle još "EVO TI KOD" (pa vidi!) hehehe :) Ja rekoh, pa dobro ako sam pogrešio.. što se Velja odma ovako naljuti hehehe

Pozdrav :)
Commercial-Free !!!
 
Odgovor na temu

mmmm

Član broj: 14893
Poruke: 46
*.crnagora.net



Profil

icon Re: datagrid13.10.2003. u 16:09 - pre 218 meseci
Hvala Vam svima - bas mi je milo sto vidim da je moje pitanje pokrenulo pravu lavinu misljenja i sto je (makar meni, a nadam se i drugima) donijelo veoma znacajne podatke :)

Sto se tice DBNull-a - vidio sam argumente i za i protiv, pa cu vidjeti sto cu. Samo sam pitao zasto datagrid kontrola prazna polja prikazuje kao DBNull, a Access kao prazna polja.

Pozdrav


ps
oko cinjenice da baza vremenom moze veoma da naraste, postoji li mogucnost da se iz VB.NET-a uradi jedan COMPACT baze (kao iz Accessa)?
 
Odgovor na temu

degojs

Član broj: 4716
Poruke: 5096



+51 Profil

icon Re: datagrid13.10.2003. u 18:35 - pre 218 meseci
Što se tiče Compact & Repair: može, koristi pretragu ES da nađeš odgovor kako da to uradiš.

Pozdrav
Commercial-Free !!!
 
Odgovor na temu

mmmm

Član broj: 14893
Poruke: 46
*.proxy.cg.yu



Profil

icon Re: datagrid13.10.2003. u 22:09 - pre 218 meseci
Dobro, imam jos pitanja (da se ne ulijenite):

1. Kako da datagrid-u promijenim sirinu neke kolone (molim vas sa jednostavnim promjerom)?

2. U sljedecoj situaciji kako da rijesim problem: otvorio sam bazu, ucitao tabelu u dataset, preko for...next petlje obradio cijeli dataset i odredjene podatke iz njega prebacio u datatable, a zatim povezao datatable sa datagridom (koji je fino prikazao tu tabelu). E sad, kada u toku izvrsavanja programa ucitam tabelu iz baze i korisnik uradi neke prepravke na tom datagridu, sad ja ocu da tu prepravljenu tabelu snimim u bazu (da uradim update); postoji li jednostavniji put da to uradim, ili moram da idem red po red rucno i da to dodam u bazu (izmijenim postojeca polja)?

Pozdrav


ps
ako moze neka objasnjenja budu sa malo izvornog koda - kratkog i jasnog
 
Odgovor na temu

degojs

Član broj: 4716
Poruke: 5096



+51 Profil

icon Re: datagrid14.10.2003. u 00:15 - pre 218 meseci
1.
Pogledaj .PreferredColumnWidth svojstvo DataGrid kontrole. Verovatno te to neće baš usrećiti. Ostalo (svaka kolona ima drugačiju širinu i druge osobine) nije baš tako jednostavno - podrazumeva se upotreba stilova.
Vidi MSDN ovde i Code Project ovde. Ima koliko hoćeš primera na netu.


2.
Citat:
preko for...next petlje obradio cijeli dataset i odredjene podatke iz njega prebacio u datatable, a zatim povezao datatable sa datagridom

Zašto uopšte prebacuješ podatke iz DataSet-a u posebnu tabelu? Dataset takođe sadrži tabele. Ujedno da vidimo i za update. Npr.
Code:

Me.OleDbDataAdapter1.Fill(DataSet1) ' punimo dataset podacima iz baze ...
Me.DataGrid1.DataSource = DataSet1.Tables(0) ' i prikazujemo u datagridu podatke iz tabele 0
        
Dim t As DataTable = DataSet1.Tables(0) 
t.Rows(17).Item(2) = ""    ' menjamo ovaj podatak u tabeli 0 u datasetu (npr. bio je null pa sad više nije :)
Me.OleDbDataAdapter1.Update(DataSet1)    ' update baze: paznja - umesto null ubuduće je u bazi ""


I opet da te uputimo na TOP temu u ovom forumu.

Pozdrav.
Commercial-Free !!!
 
Odgovor na temu

mmmm

Član broj: 14893
Poruke: 46
*.proxy.cg.yu



Profil

icon Re: datagrid14.10.2003. u 15:22 - pre 218 meseci
Pa preko for...next petlje prebacam podatke iz dataset-a u datatable, jer mi na jednom mjestu u programu neke kolone iz dataset-a ne trebaju, a treba mi recimo da se u jednom odredjenom polju prikaze sadrzaj 2 ili 3 polja formatiranih po odredjenom redosljedu (posto trebam da podatke iz vise tabela prikazem u jednom datagrid-u, a s obzirom da mi sve tabele u bazi nemaju iste kolone (neke su iste, ali ne sve), neka polja moram da sabijem u jednom nazvano "Ostalo"); dok na drugom mjestu u programu trebam da prikazem te podatke na drugi nacin (cijeli dataset da povezem sa datagridom - tu je ok primjena dataset-a). Inace, nasao sam kako da uradim Compact baze (i uradio provjeru - izlazni fajl je iste velicine kao kada Compact uradim iz Access-a), s tim sto sam malo modifikovao izvorni kod, tako da otvara bazu koja ima passrod i da je kompaktuje, kao i da izlaznoj kompaktovanoj bazi postavi sifru (izvorni kod mgu postovati, ako nekog interesuje). Inace, te tabele nijesu prevelike (najvise ce biti po nekih 50-tak redova u jednoj), tako da to nije veliko opterecenje za kompjuter da preko for...next petlje obradi te podatke.

Pozrav


ps
hvala degojs za primjere vezane za formatiranje datagrid-a :)
 
Odgovor na temu

mmmm

Član broj: 14893
Poruke: 46
*.proxy.cg.yu



Profil

icon Re: datagrid15.10.2003. u 00:55 - pre 218 meseci
Izvrsio sam odredjene prepravke u dataset-u (oslanjajuci se na kod iz TOP teme - add, delete), i kada na kraju krenem da taj dataset updatujem u bazu dobijem sljedecu poruku:

An unhandled exception of type 'System.InvalidOperationException' occurred in system.data.dll

Additional information: Update requires a valid InsertCommand when passed DataRow collection with new rows.

Kod u kome se javlja greska je:

If ds.HasChanges Then
MsgBox("ima promjena")
MyCommand1.Update(ds.GetChanges()) 'ovdje se javlja greska
MsgBox("Promjene uspjesno zapisane!")
End If

Zna li ko sto je u pitanju (ako je potrebno postovacu jos koda)?

Pozdrav
 
Odgovor na temu

[es] :: .NET :: datagrid

[ Pregleda: 4481 | Odgovora: 19 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.