Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 27 odgovora
  • 6.302 pregleda

Najnovija ↓

Datagridview update problem 20.12.2012. u 04:39 · pre 168 meseci #1
Kako da promene nastale u datagridview-u updejtujem u bazi?
korisnik hoce nesto da edituje direktno u datagridview i kada klikne na dugme save te promene odlaze u bazu.

Ne mogu da uradim UPDATE preko SQL query jer ne znam koje ce kolone korisnik da edituje, a pretpostavljam da moze drugacije da se odradi.

Ako bi mogao neko da napise najprostiji kompletan primer, mnogo bi mi znacilo posto mi ni jedan od primera sa neta nije pomogao.

PS.
Znam da ima slicnih tema na forumu (i na netu uopste) ali nista od toga nije radilo.
Sviđa mi se1
Re: Datagridview update problem 20.12.2012. u 08:21 · pre 168 meseci #2
Nije me mrzelo da isklikcem wizard. Ono sto sam dodao je
Code:
private void button1_Click(object sender, EventArgs e)
{
  customersTableAdapter.Update(northwindDataSet);
}
Re: Datagridview update problem 20.12.2012. u 08:23 · pre 168 meseci #3
Probaj da za datagridview staviš Full row select, i onda u Click eventu datagrid-a pamtiš index selektovane vrste.
Recimo.
Re: Datagridview update problem 20.12.2012. u 13:39 · pre 168 meseci #4
Citat:
ravni:
Nije me mrzelo da isklikcem wizard. Ono sto sam dodao je
Code:
private void button1_Click(object sender, EventArgs e)
{
  customersTableAdapter.Update(northwindDataSet);
}


Hvala na trudu. Voleo bih da je tako jednostavno.
Znam da bi ovo trebalo da radi (cak sam i napravio novi test program i novu bazu da proverim) ali ja nisam povezivao bazu preko wizarda vec rucno posto mi je wizard stalno izbacivao neku gresku(file in use) za tu bazu koja meni treba.
Meni bas treba rucna konekcija posto tabele u bazi ne postoje , nego ih korisnik pravi i ubacuje podatke u njih.(to sam sredio preko SQL-a i sve lepo radi)
Mozda onaj problem koji javlja wizard ima neke veze sa tim, ali kazem rucna konekcija radi (sam pravi tabelu sa zeljenim imenom, dodaje kolone, upisuje podatke u tabelu).
Jedino sto ne znam kako da rucno podesim da update i delete radi direktno sa datagridview-a.
Re: Datagridview update problem 20.12.2012. u 13:40 · pre 168 meseci #5
Citat:
mish_ns:
Probaj da za datagridview staviš Full row select, i onda u Click eventu datagrid-a pamtiš index selektovane vrste.
Recimo.


Nisam siguran da znam kako to da uradim, ali ako stavim na full row select kako ce onda korisnik da edituje konkretnu celiju koju zeli da edituje?
Re: Datagridview update problem 20.12.2012. u 14:19 · pre 168 meseci #6
Citat:
Sc8eR:...posto tabele u bazi ne postoje , nego ih korisnik pravi i ubacuje podatke u njih.(to sam sredio preko SQL-a i sve lepo radi)
Onda je mozda alat pogresan... Mozda bi im vise odgovarao Access?
Re: Datagridview update problem 20.12.2012. u 14:45 · pre 168 meseci #7
Mislio sam korisnik uopsteno :). Korisnik sam trenutno ja, a ovo radim vise iz treninga, mada imam ideju ko bi i kako mogao da iskoristi aplikaciju kada bude zavrsena.
Nije mi palo na pamet da koristim Access. A mislim da sigurno postoji nacin da se ovo odradi i u SQL-u. Ne vidim razliku u tome koju u cemu cu bazu da pravim.
Poenta aplikacije je unosenje podataka u bazu. To sam sve lepo odradio koristeci SQL upite i to sve radi.
Ali ono sto mi ne radi je izmena podataka direktno iz datagridview-a.
Ne mogu da koristim TableAdapter jer ne znam ime TableAdaptera pre nego sto korisnik podesi podatke za unos. (mozda moze nekako drugacije?)
Jedino sto meni pada na pamet je da bindujem kolone i textbox-ove iz kojih unosim podatke pa da izmene vrsim u textbox-ovima, ali to nije ono sto hocu.
Re: Datagridview update problem 20.12.2012. u 15:02 · pre 168 meseci #8
Zasto ne bi koristio DataGridView.CellValueChanged event?
Kada se promeni vrednost Cell-a, preko DataGridViewCellEventArgs mozes naci koji je red u pitanju, iz reda izvuces ID i odradis Update za taj ID.

Ovo pisem napamet bez prethodnog testiranja.
Re: Datagridview update problem 20.12.2012. u 15:16 · pre 168 meseci #9
Probaj da podatke iz DataSeta bindujes na DataGridView pomocu BindingSourcea, olaksaces si zivot.
Re: Datagridview update problem 20.12.2012. u 21:00 · pre 168 meseci #10
Citat:
plague:
Zasto ne bi koristio DataGridView.CellValueChanged event?
Kada se promeni vrednost Cell-a, preko DataGridViewCellEventArgs mozes naci koji je red u pitanju, iz reda izvuces ID i odradis Update za taj ID.

Ovo pisem napamet bez prethodnog testiranja.


Nije problem dogadjaj na koji ce se aktivirati komande. To moze da ide i preko dugmeta save.
Jel ja onda treba da proveravam svaku celiju posebno? Hmm... probacu mada mi deluje previse komplikovano. Ja sam bio ubedjen da postoji neki krajnje jednostavan (glup) nacin. Mada to je verovatno onda ono sa tableadapterom.
Re: Datagridview update problem 20.12.2012. u 21:02 · pre 168 meseci #11
Citat:
Cortex85:
Probaj da podatke iz DataSeta bindujes na DataGridView pomocu BindingSourcea, olaksaces si zivot.


Mislis uz pomoc wizarda ili rucno? Wizard ne mogu da koristim, pisao sam zbog cega.
A za rucno nisam siguran kako da uradim i kako ce mi to pomoci, ako mozes malo bolje da objasnis, ili neki primer ako imas- jos bolje.
Re: Datagridview update problem 21.12.2012. u 07:41 · pre 168 meseci #12
U pravu si za fullrowselect. Dosta je teško. Ja sam radio što na click event odredim vrstu dgv-a, i kopiram 1 polje koje mi je ključ. Ali sam koristio textBox za izmenu podataka, a tebi treba direktno iz dgv-a.
Kolege su ti dale neke dobre ideje pa probaj tako.

Imaš neke primere ovde:
http://social.msdn.microsoft.com/Forums/en/csharplanguage/thread/8db841fc-ffa7-4519-b6f5-d054c7190948

http://social.msdn.microsoft.com/Forums/en-US/sqldataaccess/thread/060f7ef5-eacb-4be5-b2cd-2d3c3ae05bec/

http://support.microsoft.com/kb/308055
Re: Datagridview update problem 21.12.2012. u 08:25 · pre 168 meseci #13
Primer:
Code:

/********************************************
                  NAPAMET KUCAN KOD
*********************************************/
BindingSource bs = new BindingSource();
DataTable dt  = new DataTable(); 
TableAdapter ta = new TableAdapter();
bs.DataSource = dt;
dgv.DataSource = bs;

private void btnSaveClick(object sender, EvengArgs e)
{
         bs.EndEdit();
         ta.Update(dt); 
}


Nemoj da zaboravis da u metodi u kojoj radis update vrednosti u bazu pozoves EndEdit() BindingSourca.
Ovo je kucano na brzinu samo kao primer kako da ih povezes kroz kod, kada budem imao VS u blizini ako i dalje budes imao problema okacicu ti primer.
Re: Datagridview update problem 21.12.2012. u 11:21 · pre 168 meseci #14
Citat:
mish_ns:
U pravu si za fullrowselect. Dosta je teško. Ja sam radio što na click event odredim vrstu dgv-a, i kopiram 1 polje koje mi je ključ. Ali sam koristio textBox za izmenu podataka, a tebi treba direktno iz dgv-a.
Kolege su ti dale neke dobre ideje pa probaj tako.

Imaš neke primere ovde:
http://social.msdn.microsoft.com/Forums/en/csharplanguage/thread/8db841fc-ffa7-4519-b6f5-d054c7190948

http://social.msdn.microsoft.com/Forums/en-US/sqldataaccess/thread/060f7ef5-eacb-4be5-b2cd-2d3c3ae05bec/

http://support.microsoft.com/kb/308055


Hvala na linkovima.
Na neke od njih sam vec naisao guglajuci (stigao sam do 4 strane na guglu trazeci :D) a ostale cu pogledati cim budem seo za svoj racunar.
Re: Datagridview update problem 21.12.2012. u 11:31 · pre 168 meseci #15
Citat:
Cortex85:
Primer:
Code:

/********************************************
                  NAPAMET KUCAN KOD
*********************************************/
BindingSource bs = new BindingSource();
DataTable dt  = new DataTable(); 
TableAdapter ta = new TableAdapter();
bs.DataSource = dt;
dgv.DataSource = bs;

private void btnSaveClick(object sender, EvengArgs e)
{
         bs.EndEdit();
         ta.Update(dt); 
}


Nemoj da zaboravis da u metodi u kojoj radis update vrednosti u bazu pozoves EndEdit() BindingSourca.
Ovo je kucano na brzinu samo kao primer kako da ih povezes kroz kod, kada budem imao VS u blizini ako i dalje budes imao problema okacicu ti primer.


Za EndEdit nisam znao, probacu da iskoristim.
Ali ovo za table adapter ne mogu da iskoristim jer ne mogu da instanciram tableAdapter. Ne postoji klasa TableAdapter. Jel treba da dodam u using jos nesto osim SqlClient?
A ako je dodam preko wizarda, doda tableAdapter za jednu tabelu, a meni treba za vise i ne znam unapred koja je tabela.
Re: Datagridview update problem 21.12.2012. u 12:53 · pre 168 meseci #16
Citat:
Sc8eR: ...i ne znam unapred koja je tabela.
Nije mi jasno ovo. Kazes da ne znas koja je tabela, a kako onda ucitavas podatke u grid? Daj malo konteksta da znamo kako radis sada.
Re: Datagridview update problem 21.12.2012. u 13:07 · pre 168 meseci #17
Moja greska nisam citao celu temu nego samo delove, pa sam na osnovu toga dao predlog.


Ti se ovde suocavas sa jednim drugim problemom a to je generisanje CRUD upita jer ti ne znas unapred strukturu podataka tabele. Aplikacija na kojoj radis je neka vrsta DB management alata?
Re: Datagridview update problem 21.12.2012. u 13:46 · pre 168 meseci #18
Citat:
ravni:
Citat:
Sc8eR: ...i ne znam unapred koja je tabela.
Nije mi jasno ovo. Kazes da ne znas koja je tabela, a kako onda ucitavas podatke u grid? Daj malo konteksta da znamo kako radis sada.


Po pokretanju aplikacije ucitava se tabela u zavisnosti od trenutnog meseca.
A preko combobox-a korisnik menja tabelu (mesec) za koji zeli da vidi podatke.
A koliko sam ja video da bi mogao da koristis TableAdapter, moras preko wizarda da odredis za koju tabelu hoces tableAdapter koji onda dobija ime ImeTabeleTableAdapter1, a meni bi onda trebao table adapter za svaki mesec do sad i svaki mesec u buduce posto aplikacija automatski kreira novu tabelu kad dodje naredni mesec.
Nadam se da ovo ima bar nekog smisla :D
Re: Datagridview update problem 21.12.2012. u 13:53 · pre 168 meseci #19
Citat:
Cortex85:
Moja greska nisam citao celu temu nego samo delove, pa sam na osnovu toga dao predlog.


Ti se ovde suocavas sa jednim drugim problemom a to je generisanje CRUD upita jer ti ne znas unapred strukturu podataka tabele. Aplikacija na kojoj radis je neka vrsta DB management alata?


Da, tako nesto. To je u sustini evidencija. Aplikacija automatski kreira tabele sa imenom tekuceg meseca.
Sve funkcionise ok samo sto ne mogu da menjam podatke u datagrid-u.
ImeTabeleTableAdapter1.Update(dataset) radi ono sto hocu ali samo kad imam jednu tabelu i kad dodam tu tabelu u tableadapter preko wizarda (napravio sam novu aplikaciju i probao za jednu tabelu).
Re: Datagridview update problem 21.12.2012. u 14:06 · pre 168 meseci #20
Zasto bi kreirao tabelu sa imenom tekuceg meseca? Da li svaka od tabela koja se zove po mesecu zapravo pamti iste podatke (ima iste kolone)?
Sviđa mi se1
Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme