[ Andie @ 20.04.2010. 14:56 ] @
Pozdrav,
muči me par stvari.

Pravim za maturski adresar, odradio sam u Access-u bazu, sa jednom tabelom, u kojoj se nalaze kolone Ime i prezime, adresa, broj, telefon...
Napravio sam u C# aplikaciju, koja sadrži više formi, osnovnu, i jednu koja mi je bitna za dodavanje novih kontakata.
Na osnovnoj se prikazuju kontakti u listbox-u (samo imena i prezimena), i klikom na kontakt u listboxu, prikazuju se ostali podaci u textboxovima sa strane.
Bazu sam povezao preko "Add new data source".
Sad hoću da kad se klikne na File -> Dodaj novi kontakt i otvori forma, u kojoj se popune traženi podaci, upiše to u bazu podataka i u listbox.
Kako to da uradim, jel treba i na toj formi za dodavanje kontakata, isto preko wizarda da povežem sa bazom podataka, ili je to već povezano?


Našao sam jedan primer na internetu, ova konekcija, jel mi to treba, pošto sam preko wizarda povezao?
INSERT INTO Kontakti (Ime i prezime, Adresa, Broj...)"; - To su mi kolone u bazi
Sad me buni ovo oko textboxova, svi ti navodnici i apostrofi.
Imam 8 textboxova, kako bi to izgledalo?

Citat:
private void button2_Click_1(object sender, EventArgs e)
{
OleDbConnection Konekcija = new OleDbConnection();
Konekcija.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\SimpleTest.ACCDB";
Konekcija.Open();
OleDbCommand Komanda = new OleDbCommand();
Komanda.Connection = Konekcija;
Komanda.CommandText = "INSERT INTO Person (Age,FirstName,Description, Updated) VALUES(10, 'Aksel', 'Toko', '1/1/2002')";
Komanda.CommandText = "INSERT INTO Person (Age,FirstName,Description, Updated)";
Komanda.CommandText += " VALUES(" + Convert.ToInt32(textBox3.Text) + ",'" + textBox4.Text + "'" + ",";
//Komanda.CommandText += "'" + textBox5.Text + "'" + "," + "'" + DateTime.Today + "')";
Komanda.CommandText += "'" + textBox5.Text + "'" + "," + "'" + dateTimePicker1.Value + "')";
Komanda.ExecuteNonQuery();
Konekcija.Close();
Ponovo();
dataGridView1.Refresh();
}



Koga ne mrzi može da skine program, pa da mi pomogne oko problema.
Veliko hvala!

http://www.sendspace.com/file/dopsuc
[ mish_ns @ 20.04.2010. 18:51 ] @
Da bi izbegao zareze i ostalo probaj sa parametrima. Nesto slicno ovome:
Parameter-Queries



[ mish_ns @ 20.04.2010. 19:00 ] @
Citat:

Sad hoću da kad se klikne na File -> Dodaj novi kontakt i otvori forma, u kojoj se popune traženi podaci, upiše to u bazu podataka i u listbox.
Kako to da uradim, jel treba i na toj formi za dodavanje kontakata, isto preko wizarda da povežem sa bazom podataka, ili je to već povezano?


Mislim da ne moras, dodaj samo Konekciju kao sto si vec napisao.
Uradi Insert u bazu i dodaj kontakt u listBox. U drugoj formi imas dugme Dodaj, tu uradi Insert i dodavanje u ListBox.
S obzirom da ti je listbox na prvoj formi, klikni na njega i podesi osobinu Modifiers na Public, kako bi mu mogao pristupiti iz druge forme.
Dodavanje u listbox ide ovako:
Code:

listBox1.Items.Add(textBoxIme.Text+" "+textBoxPrezime.Text);

Javi ako je ista pomoglo.
[ Andie @ 30.04.2010. 13:48 ] @
Uradio sam nešto.
Sad me muči sledeće:
Formular za dodavanje novih kontakata je na drugoj formi, i kad ga popunim, i kliknem "dodaj" on ga doda, ali mi ne refreshuje listbox na početnoj formi, tek kad ugasim pa upalim program.

Verovatno treba nešto slično ovome
listBox1.Refresh();

al treba negde da naglasim da je to na početnoj formi.
Zna li neko kako to da odradim.
Hvala
[ lonelyrider_44 @ 30.04.2010. 14:24 ] @
Code:

  private void dodajKontaktToolStripMenuItem_Click(object sender, EventArgs  
e)
         {
             dodavanje aboutDialog = new dodavanje();
             aboutDialog.ShowDialog();

    //Dodaj ovde:
        Ponovo();
         }


Nemam VS 2008 trenutno instaliran, odgovorio sam gledajuci kod u obichnom text editoru. Poenta je samo da ponovo pozovesh f-ju Ponovo u kojoj punish listBox1, nije dovoljno da ga refresh-ujesh jer ce samo uchitati ponovo podatke iz dataset-a koji takodje nije azuriran. Po nazivu ove f-je (dodajKontakt..._Click), rekao bih da je to mesto sa kojim pozivash formu za unos/dodavanje, ali po nazivu objekta (aboutDialog) pomislio sam da nije to-to, ali koliko sam gledao, i nema poziva neke druge forme, tako da, bilo to ovo , ili, samo pozovi f-ju Ponovo kad hocesh da azurirash listBox1.
--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/

[Ovu poruku je menjao lonelyrider_44 dana 30.04.2010. u 17:12 GMT+1]
[ dili900 @ 01.05.2010. 23:04 ] @
najverovatno formu za dodavanje kontakta si prikazivao kao modalno (kao dialogbox) sto podrazumeva da to je
modalni za aplikaciju i ne mozes da predjes u drugu formu dok ne zatvoris, a kod koji treba da refresuje listu je u drugoj formi.
Mozes da probas da zatvoris formu za unos i ponovo, da dodas kontakt u listboxu, i posle da prikazujes i formu za dodavanje.

Sve dok se ne zatvori forma dodavnje(aboutDialog) ne se zatvori, ne se izvrsava nijedna linija koda.
Moguce su mnogo nacini da se resi.Posto dodas kontakti mozda nije ti potrebno da ti ostane forma za dodavanje otvoreno kad pritisnes na dugme 'Dodaj'.
Tako da od meni File.Dodaj pozoves formu dodavanje ka DialogBox, a u formu Dodavanje nikakav kod za dodavanje ne pises nege samo postavis svostvo DialogResult = Windows.Forms.DialogResult.OK ako pritisnes dugme 'Dodaj', ako pritisnes dugme 'Izlaz" svostvo forme dodavnje
DialogResult = Windows.Forms.DialogResult.CANCEL i zatvoris tu formu za dodavanje posto vise ne ti treba. i od glavne forme proveris
'if dodavanje.Dialogresults= Windows.Forms.DialogResult.OK then 'Procedura dodavanje u bazi i Listi
a ako nije pritisnut dugme 'Dodaj' da ne radi nista.
.Mozes da ides dalje i da napravis TypedDataset preko Wizarda i da ti to sve bude u jednu formu i dodavanje i citanje iz baze i sve, bolje da kontrolises taj dataset.
[ dili900 @ 02.05.2010. 00:06 ] @
Evo primer koda u glavnoj formi meni Fajl>Dodaj kontakt :
Citat:
private void dodajKontaktToolStripMenuItem_Click(object sender, EventArgs e)
{
dodavanje aboutDialog = new dodavanje();
aboutDialog.ShowDialog();
if (aboutDialog.DialogResult == DialogResult.OK)
{
Konekcija = new OleDbConnection();
Konekcija.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Users\\chee\\Documents\\Visual Studio 2008\\Projects\\Adresar - Final\\Kontakti.ACCDB";
Konekcija.Open();
Komanda = new OleDbCommand();
Komanda.Connection = Konekcija;
Komanda.CommandText = "INSERT INTO Kontakti ([Ime i prezime],[Ulica],[Broj],[Mesto],[Fixni telefon],[Mobilni telefon],[E-mail],[Facebook])";
Komanda.CommandText += " VALUES('" + aboutDialog.tbImeD.Text + "', '" + aboutDialog.tbUlicaD.Text + "', '" + aboutDialog.tbBrojD.Text + "', '" + aboutDialog.tbMestoD.Text + "', '" + aboutDialog.tbFixniD.Text + "', '" + aboutDialog.tbMobilniD.Text + "', '" + aboutDialog.tbMailD.Text + "', '" + aboutDialog.tbFacebookD.Text + "')";
Komanda.ExecuteNonQuery();
Konekcija.Close();
Ponovo();
aboutDialog.Dispose();
}
else
{
// Display a message box indicating that the Cancel button was clicked.
MessageBox.Show("The Cancel button on the form was clicked.");
// Optional: Call the Dispose method when you are finished with the dialog box.
aboutDialog.Dispose();
}
}

a u formi 'Dodavanje' ne treba nista uraditi sem potavljanje svojstvo this.dialogResults=dialogResults.ok
Citat:
private void button3_Click(object sender, EventArgs e)
{
this.Close();
}

private void button1_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.OK;
this.Close();
}
[ Andie @ 16.05.2010. 13:53 ] @
Odradio sam program. Hteo bih samo da dodam opciju "Print" kontakta. Kako to da odradim, da štampa podetke selektovanog kontakta iz baze?
[ Prokleta_Nedelja @ 17.05.2010. 08:00 ] @
Moraš napraviti neki Report. Na njemu ubaci labele koje ćeš bindovati sa podacima