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

Update baze - spas izmena iz dataGridView-a u DataTable -dinamicka izmena tabela

[es] :: .NET :: .NET Desktop razvoj :: Update baze - spas izmena iz dataGridView-a u DataTable -dinamicka izmena tabela

Strane: 1 2

[ Pregleda: 3529 | Odgovora: 21 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

NisamJa
Novi Sad

Član broj: 237961
Poruke: 19
*.dynamic.sbb.rs.



Profil

icon Update baze - spas izmena iz dataGridView-a u DataTable -dinamicka izmena tabela19.11.2009. u 17:04 - pre 175 meseci
Imam access bazu sa puno tabela. Nazive tabela izlistavam u listBox-u, pa user bira tabelu koju treba da edituje. Tabele su sa razlicitim kolonama, razlicite velicine, a izabrana tabela se prikazuje u dataGridView1.Sve to lepo radi, ali ne znam kako da spasem izmene koje korisnik napravi. Probala sam sa sledecim kodom:
Code:
  private void saveToolStripButton_Click(object sender, EventArgs e)
        {

             OleDbDataAdapter da = new OleDbDataAdapter();
            BindingSource bindingSource1 = new BindingSource();

            

            bindingSource1.DataSource = dataGridView1.DataSource;

            
            this.bindingSource1.DataSource = ds;

            this.bindingSource1.DataMember = label1.Text;

            DataTable dt = bindingSource1.DataSource as DataTable;

            this.Validate();
            this.bindingSource1.EndEdit();
         
           
            if (dt != null)
            {
                this.tableAdapterManager.UpdateAll(this.ds);
            }
        }


Kad stavim break point, vidim da je da=null. Nemam pojma zasto.
Don't panic!
 
Odgovor na temu

malo_nj
novi sad

Član broj: 140825
Poruke: 104
213.196.121.*

Sajt: www.2advanced.com


Profil

icon Re: Update baze - spas izmena iz dataGridView-a u DataTable -dinamicka izmena tabela20.11.2009. u 07:13 - pre 175 meseci
Gdje ti uopste koristis "da"? I da je null kako tvoj kod izgleda svijedno je ali nema bas nekog smisla da se ne inicijalizuje. Ako ti nije sta okaci tu citavu klasu ili projekat ako nije nesto veliko.
 
Odgovor na temu

NisamJa
Novi Sad

Član broj: 237961
Poruke: 19
*.dynamic.sbb.rs.



Profil

icon Re: Update baze - spas izmena iz dataGridView-a u DataTable -dinamicka izmena tabela20.11.2009. u 07:31 - pre 175 meseci
uh, da (dataadapter) je null u drugoj verziji. Ova okacena verzija ne prijavljuje gresku, ali i ne upisuje u bazu.
Don't panic!
 
Odgovor na temu

NisamJa
Novi Sad

Član broj: 237961
Poruke: 19
*.dynamic.sbb.rs.



Profil

icon Re: Update baze - spas izmena iz dataGridView-a u DataTable -dinamicka izmena tabela20.11.2009. u 08:31 - pre 175 meseci
Imam i sledecu verziju, ali dobijam gresku:
Value cannot be null.
Parameter name: dataTable
Code:
 private void button4_Click(object sender, EventArgs e)
        {
            OleDbConnection con = new OleDbConnection();
            con.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\busic.mdb";
            con.Open();
            OleDbDataAdapter da = new OleDbDataAdapter("Select * from " + label1.Text + "", con);
         

     
            BindingSource bindingSource1 = new BindingSource();
            bindingSource1.DataMember = label1.Text;
            DataTable dt = ds.Tables[0];
            dt.TableName = textBox1.Text;
            
            bindingSource1.DataSource = dt;//dataGridView1.DataSource;
            bindingNavigator1.BindingSource = bindingSource1;
            this.bindingSource1.EndEdit();
            da.Update(ds.Tables["dt"]);
            con.Close();
        }


bazu (nazive tabela iz baze) izlistavam u liistBox ovako:
Code:

System.IO.File.Copy("c:\\baza.mdb", "c:\\kopija.mdb", true); //e.Extract(TargetDirectory, true);  // overwrite == true
            // Microsoft Access provider factory
            DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.OleDb");

            DataTable userTables = null;

            using (DbConnection connection = factory.CreateConnection())
            {
                // c:\test\test.mdb
                connection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\kopija.mdb";

                // We only want user tables, not system tables
                string[] restrictions = new string[4];
                restrictions[3] = "Table";

                connection.Open();

                // Get list of user tables
                userTables = connection.GetSchema("Tables", restrictions);

                connection.Close();
                connection.Dispose();
            }

            // Add list of table names to listBox
            for (int i = 0; i < userTables.Rows.Count; i++)
                lbLinije.Items.Add(userTables.Rows[i][2].ToString());


dataGridView punim izabranom tabelom ovako:
Code:

  private void radioButton1_CheckedChanged(object sender, EventArgs e)
        {
            OleDbConnection con = new OleDbConnection();
            con.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\busic.mdb";
            OleDbDataAdapter da = new OleDbDataAdapter("Select * from " + label1.Text + "", con);
            DataSet ds = new DataSet();
            da.Fill(ds);
            dataGridView1.DataSource = ds.Tables[0];
        
            foreach (DataGridViewColumn column in dataGridView1.Columns)
            {
                column.SortMode = DataGridViewColumnSortMode.NotSortable;
            }
         
            BindingSource bindingSource1 = new BindingSource();
            bindingSource1.DataMember = label1.Text;

            bindingSource1.DataSource = ds.Tables[0];
             // bindingSource1.DataSource= dataGridView1.DataSource;
              bindingNavigator1.BindingSource = bindingSource1;

        }


Don't panic!
 
Odgovor na temu

malo_nj
novi sad

Član broj: 140825
Poruke: 104
213.196.121.*

Sajt: www.2advanced.com


Profil

icon Re: Update baze - spas izmena iz dataGridView-a u DataTable -dinamicka izmena tabela20.11.2009. u 11:01 - pre 175 meseci
eve ga. Samo prebaci code kod sebe
Prikačeni fajlovi
 
Odgovor na temu

NisamJa
Novi Sad

Član broj: 237961
Poruke: 19
*.dynamic.sbb.rs.



Profil

icon Re: Update baze - spas izmena iz dataGridView-a u DataTable -dinamicka izmena tabela20.11.2009. u 12:17 - pre 175 meseci
Hvala ti puno!!!!!
Trčim da probam, pa se javim!!!
Don't panic!
 
Odgovor na temu

NisamJa
Novi Sad

Član broj: 237961
Poruke: 19
*.dynamic.sbb.rs.



Profil

icon Re: Update baze - spas izmena iz dataGridView-a u DataTable -dinamicka izmena tabela20.11.2009. u 13:02 - pre 175 meseci
Ne verujem da mi se opet isto dešava. Sve lepo radi sem spasavanja izmena. Promenim podatak u gridu, a u bazi se ne desi ništa. Jedino što je različito od tvog rešenja je to što nemam combobox nego listBox na drugoj formi, setovan kao public i lo radi. Problem je samo na relaciji grid-baza. Nemam ideju šta nije dobro.

Kada sam probala da stavim da je bindingSource1.DataMember fiksno jedna odredjena tabela iz baze, onda radi, ali ne može tako da se radi, jer ima oko 70 tabela.

Neka ideja?
Don't panic!
 
Odgovor na temu

malo_nj
novi sad

Član broj: 140825
Poruke: 104
213.196.121.*

Sajt: www.2advanced.com


Profil

icon Re: Update baze - spas izmena iz dataGridView-a u DataTable -dinamicka izmena tabela20.11.2009. u 13:10 - pre 175 meseci
hm jedino sto mi pada na pamet je da nesto uradis sa stringom iz listboxa pa ti ne moze pronaci tabelu. daj error ili okaci citav projekat ako nije veliki da ti odma i rijesim
 
Odgovor na temu

NisamJa
Novi Sad

Član broj: 237961
Poruke: 19
*.dynamic.sbb.rs.



Profil

icon Re: Update baze - spas izmena iz dataGridView-a u DataTable -dinamicka izmena tabela20.11.2009. u 13:20 - pre 175 meseci
Pa pronadje tabelu, lepo otvara u gridu onu tabelu koja je selektovana u listBoxu, onda izmenim neko polje u gridu, kliknem dugme za update i ne javlja nikakvu gresku, samo, kada ponovo pozovem tu tabelu, imam onu staru, bez izmena.

Projekat je jako veliki, ne mogu ceo da okacim.
Don't panic!
 
Odgovor na temu

malo_nj
novi sad

Član broj: 140825
Poruke: 104
213.196.121.*

Sajt: www.2advanced.com


Profil

icon Re: Update baze - spas izmena iz dataGridView-a u DataTable -dinamicka izmena tabela20.11.2009. u 13:29 - pre 175 meseci
ajde mi okaci btn4_click odnosno taj dio sto radi update da pogledam u medjuvremenu stavi neki breakpoint i provjeri da li ti pise dobro ime tabele u DataMember
 
Odgovor na temu

NisamJa
Novi Sad

Član broj: 237961
Poruke: 19
*.dynamic.sbb.rs.



Profil

icon Re: Update baze - spas izmena iz dataGridView-a u DataTable -dinamicka izmena tabela20.11.2009. u 13:45 - pre 175 meseci
U pravu si, tu je problem: bindingSource1.DataMember = form1.lbLinije.SelectedItem.ToString(); Kada stavim breakpoint kaze da je bindingSource1.DataMember ="" A zasto?

Code:

 OleDbConnection con = new OleDbConnection();
            con.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\baza.mdb";
            con.Open();
            OleDbDataAdapter da = new OleDbDataAdapter("Select * from " + form1.lbLinije.SelectedItem.ToString(), con);
           

     
            BindingSource bindingSource1 = new BindingSource();
            bindingSource1.DataMember = form1.lbLinije.SelectedItem.ToString();
            DataTable dt = ds.Tables[0];
            dt.TableName = form1.lbLinije.SelectedItem.ToString();
            
            bindingSource1.DataSource = dt;
            bindingNavigator1.BindingSource = bindingSource1;
            this.bindingSource1.EndEdit();
  
            OleDbCommandBuilder cb = new OleDbCommandBuilder(da);
            da.UpdateCommand = cb.GetUpdateCommand();
            da.Update(ds, form1.lbLinije.SelectedItem.ToString());
            con.Close();

Don't panic!
 
Odgovor na temu

malo_nj
novi sad

Član broj: 140825
Poruke: 104
213.196.121.*

Sajt: www.2advanced.com


Profil

icon Re: Update baze - spas izmena iz dataGridView-a u DataTable -dinamicka izmena tabela20.11.2009. u 14:07 - pre 175 meseci
Mislim da znam u cemu je caka. Ako ti ta druga forma sluzi da samo izaberes tabelu koja ce se prikazati u prvoj formi onda nemoj da radis sa listbox.selecteditems nego nakon sto zatvoris tu formu vrati taj naziv. Problem je u tome sto ti nakon sto si uradila select vratis se na prvu formu a druga izgubi focus i time list box izgubi selected. Ako i u slucaju kada ucitavas tabelu isto hvatas ime iz tog listboxa na drugoj formi tad ga stavi u neki parametar npr

Public string naziv ;

private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
OleDbConnection con = new OleDbConnection();
con.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\busic.mdb";
OleDbDataAdapter da = new OleDbDataAdapter("Select * from " + label1.Text + "", con);
DataSet ds = new DataSet();
da.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];

foreach (DataGridViewColumn column in dataGridView1.Columns)
{
column.SortMode = DataGridViewColumnSortMode.NotSortable;
}

BindingSource bindingSource1 = new BindingSource();
naziv = form1.lbLinije.SelectedItem.ToString();
bindingSource1.DataMember = naziv;

...

i onda i dole samo memberu das tu promjenjivu
 
Odgovor na temu

NisamJa
Novi Sad

Član broj: 237961
Poruke: 19
*.dynamic.sbb.rs.



Profil

icon Re: Update baze - spas izmena iz dataGridView-a u DataTable -dinamicka izmena tabela20.11.2009. u 14:11 - pre 175 meseci
Promenila sam:
Code:
bindingSource1.DataSource = ds;  //bilo dt

Sada lepo pokazuje i DataMember i DataSource kada stavim breakpoint, ali i dalje ne upisuje izmene u bazu.Najbolje da razbijem racunar!
Don't panic!
 
Odgovor na temu

NisamJa
Novi Sad

Član broj: 237961
Poruke: 19
*.dynamic.sbb.rs.



Profil

icon Re: Update baze - spas izmena iz dataGridView-a u DataTable -dinamicka izmena tabela20.11.2009. u 14:14 - pre 175 meseci
Preduhitrio si me sa odgovorom. Sada cu da probam, pa se javim.
Don't panic!
 
Odgovor na temu

malo_nj
novi sad

Član broj: 140825
Poruke: 104
213.196.121.*

Sajt: www.2advanced.com


Profil

icon Re: Update baze - spas izmena iz dataGridView-a u DataTable -dinamicka izmena tabela20.11.2009. u 14:20 - pre 175 meseci
Znam kako ti je :D ali ne gubi nadu jedno pivo,kafa,sok il sta vec preferiras uz sat vremena pauze cini cuda.

Kazes da ti je sad dobar dataMember. Provjeri kako ti izgleda UPDATE string i ima jos jedna stvar nisam nika pokusao ali citao sam da ta da.Update(ds, form1.lbLinije.SelectedItem.ToString()); funkcija ne radi ako tabele nemaju primary key.

Rado bih ti jos pomogao ali ovako naslepo nemam puno ideja. Sta se desi ustvari on samo predje preko da.Update il pukne?
 
Odgovor na temu

NisamJa
Novi Sad

Član broj: 237961
Poruke: 19
*.dynamic.sbb.rs.



Profil

icon Re: Update baze - spas izmena iz dataGridView-a u DataTable -dinamicka izmena tabela20.11.2009. u 14:42 - pre 175 meseci
Samo predje preko Update-a, kao da se ja tu ne mucim tri dana, kao da ga nema.

rekapitulacija: na jednoj formi je samo list box u kome se izlistaju nazivi tabela iz baze.
Na drugoj formi su labela i string 'naziv' koji cuvaju listBox.SelectedItem.ToString();, a tu je i grid

Mozda je najbolje da umesto listBox-a uzmem comboBox (kao sto si ti uzeo), da ne zauzima prostor, pa da ga šutnem na drugu formu, gde je i sve ostalo.

Inace, tabele imaju primary key.


Negde sam čula da je programer živo biće koje kofein pretvara u kod.

Dakle, sada ću da popijem kafu, pa da vidim šta će da se desi.



[Ovu poruku je menjao NisamJa dana 20.11.2009. u 15:52 GMT+1]
Don't panic!
 
Odgovor na temu

malo_nj
novi sad

Član broj: 140825
Poruke: 104
213.196.121.*

Sajt: www.2advanced.com


Profil

icon Re: Update baze - spas izmena iz dataGridView-a u DataTable -dinamicka izmena tabela20.11.2009. u 14:55 - pre 175 meseci
evo ti i sa listboxom i radi mi.

Ajde pa bicu i sutra pri netu pa mozda se nesto izmozga.

sretno
Prikačeni fajlovi
 
Odgovor na temu

NisamJa
Novi Sad

Član broj: 237961
Poruke: 19
*.dynamic.sbb.rs.



Profil

icon Re: Update baze - spas izmena iz dataGridView-a u DataTable -dinamicka izmena tabela20.11.2009. u 15:09 - pre 175 meseci
Eeee, kod mene je obrnuto - listBox je na glavnoj formi, u mom slučaju, Form1, a grid na tamo nekoj, u mom slučaju, Form8.

Da strpam i listBox (comboBox) na Form8?
Don't panic!
 
Odgovor na temu

malo_nj
novi sad

Član broj: 140825
Poruke: 104
*.teol.net.

Sajt: www.2advanced.com


Profil

icon Re: Update baze - spas izmena iz dataGridView-a u DataTable -dinamicka izmena tabela20.11.2009. u 20:33 - pre 175 meseci
pa pokusaj tako ces se barem osigurati da ti je taj dio prenosa podatka koja je tabela dobar.
 
Odgovor na temu

NisamJa
Novi Sad

Član broj: 237961
Poruke: 19
*.dynamic.sbb.rs.



Profil

icon Re: Update baze - spas izmena iz dataGridView-a u DataTable -dinamicka izmena tabela20.11.2009. u 23:47 - pre 175 meseci
Gotovo je!!! Raaaadiiiii!!!
Neces verovati sta je pravilo problem - nazivi kolona u bazi. Tamo gde se naziv kolone sastoji od dve reci, nema sanse da radi, a ja sam, kao za inat, probala bas na takvom slucaju, jer mi je to najmanja tabela, pa da ne zaboravim gde sam menjala podatke.

Sada moram svuda da stavim podcrtu i stvar je resena!

Pozdrav i hvala ti puno, bez tvoje pomoci bih se jos vrtela u krug.

Ujutru sam ponovo tu, ali, nadam se bez problema.

Pozdrav, Dijana
Don't panic!
 
Odgovor na temu

[es] :: .NET :: .NET Desktop razvoj :: Update baze - spas izmena iz dataGridView-a u DataTable -dinamicka izmena tabela

Strane: 1 2

[ Pregleda: 3529 | Odgovora: 21 ] > FB > Twit

Postavi temu Odgovori

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