[ popmilan76 @ 07.07.2012. 16:50 ] @
Jedno pitanje vezano za c sharp,imam bazu i datagrid,i hocu da napravim dva button,od kojih je jedan save a drugi add new ,vec imam i neke text boxove na fpormi koje su vezane za bazu koji su kodovi za button click,nov sam u c sharpu, ida li mogu da napravim jedno dugme koje ce ubaciti novi record i odmah to zapamtiti,kao u svim drugim jezicima,access,delphi,vb....ako ne moze,da odmah batalim ovaj c sharp...pozdrav i hvala
[ popmilan76 @ 08.07.2012. 19:31 ] @
jel mi moze neko pomoci ili da s evratim drugom programiranju
[ Boyka @ 10.07.2012. 16:36 ] @
Cekaj bre, jasnije to malo.. niko te skontao nije... ako i jedan jezik moze za bazom raditi to je onda C#.net.

[ popmilan76 @ 10.07.2012. 20:06 ] @
Kako napisati kod za unos podataka u bazu i dbgrid ali da to ne bude preko onog glupavog bindingnavigatora ili kako se vec zove,jedna totalno nepotrebna stvar...Znaci napisati kod za dugme addnew,delete,i i da kada se unese ili obrise da stvarno bude uneseno ili obrisano i u bazi...Ako ne moze to da se uradi sa jednim redom koda,da ja to odmah batalim....Hvala ,i cekam odgovore
[ Cortex85 @ 11.07.2012. 12:08 ] @
BindingNavigator je tu vise da ti ustedi vreme za pisanje boilerplate koda za CRUD operacije. Kada pritisnes dugme na navigatoru za unos novog reda on pozove metodu AddNew() njegovog bindingsourca, dakle klasa koja sluzi kao adapter izmedju grafike u tvom slucaju DataGridView i DataSet tabele je BindingSource i pogledaj njegovu dokumentaciju.

[ popmilan76 @ 11.07.2012. 15:03 ] @
U kom programu imas koriscen taj bindingnavigator,svi stavljaju svoja dugmad i svoje kodove.....I ako treba da unesem taj kod,treba mi 5 reda koda...Ma Delphi je zakon prema C#,dajte mi neke prednosti c# ,zasto bih trebao da ga koristim....jer to nije svakako lakoca u radu....Hvala unapred.
[ Cortex85 @ 11.07.2012. 21:43 ] @
U svakoj winforms database driven aplikaciji koju sam radio. Imam svoju kontrolu koja se sastoji od grida i navigatora, naravno po potrebi menjam neke delove.

O tome da li je delphi bolji od c# i obrnuto moze da govori samo onaj ko oba jezika poznaje na ekspertskom nivou.

Po terminologiji koju koristis rekao bih da dolazis iz nekog Access VBA sveta i da nisi bas nacisto sa celim OOP konceptom.
[ ravni @ 12.07.2012. 07:43 ] @
Citat:
popmilan76:
Ma Delphi je zakon prema C#,dajte mi neke prednosti c# ,zasto bih trebao da ga koristim....
Jel' te neko tera?
[ popmilan76 @ 12.07.2012. 09:13 ] @
Naravno da me niko ne tera,nego cisto pricamo...Koju bi knjigu preporucili za ucenje,da li je laksi za ucenje od Delphija,a prebacujem se iz razloga sto je kao jezik,cini mi se u velikom usponu,zajedno sa javom,
[ Shadowed @ 12.07.2012. 09:54 ] @
@Popmilan76, skroz si u pravu, Delphi ti je mnogo bolji. Drzi se njega i nemas sta da brines.
[ ravni @ 12.07.2012. 11:07 ] @
Radi se o tome da ako si ti naucio da radis na jedan nacin u nekom alatu, ne mora svaki sledeci alat da radi bas isto tako.

Jos nesto. Pogledaj prvih par poruka, deluje kao da nisi ulozio vreme da ih sastavis da budu jasne i drugima. Pravilna interpunkcija, velika slova, sve to doprinosi da se jasnije izrazis, da te clanovi foruma ozbiljnije shvate i da brze dobijes pomoc.
[ Boyka @ 12.07.2012. 11:36 ] @
Razumem kada neko napiše da je C++ bolji od C#-a u nekim situacijama, ali Delphi? WTF?

Druze C# ima rezervisan ADO.NET samo za rad sa bazama podataka i najvise se koristi u svim firmama sto dovoljno govori o njemu
u C#-u imas ASP.NET za izradu dinamickih web strana, gde je to Delphiju?
u C#-u imas WPF, koji daje neverovatne mogucnosti za dizajn same forme uz pomoc XML-a i DirectX-a. Koriscen u OS Windows 8.

da ne govorim o brzini izrade, o njegovom OOP itd itd..

Nisi bre ni naveo koju bazu hoces, nisi ni naveo kako hoces da ti budu ubaceni(konektovano, ne konektovano)?
Evo za Access bazu podataka u konektovanom rezimu(napamet sam radio), najprostije moguce i sve sam ti objasnio komentarima..
Code:

con = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Documents and Settings\Srdjan\My Documents\Nwind.accdb");
            //putanja do baze na koju ce se C# konektovati
            OleDbCommand com = new OleDbCommand(); //kreiranje objekta klase OleDbCommand
            com.Connection = con; //Konekcija komande se stavlja da komanda zna gde da pronadje bazu
            com.CommandType = CommandType.Text; //Tip komande predstavlja nacin na koji cemo ispisati upit, u ovom slucaju u pitanju je text
            com.CommandText = "INSERT INTO ime_baze(tabele) values(vrednosti)";//dakle ubaci u bazu vrednosti iz recimo textboxa
            con.Open(); // otvori konekciju
            com.ExecuteNonQuery(); // ne zahtevaj povratni upit i ubaci u bazu
            con.Close(); //zatvori konekciju


za brisanje ti nisam pisao, jer mislim da si dovoljno inteligentan da sam provalis kako. Uglavnom samo promenis Komand tekst.

[Ovu poruku je menjao Boyka dana 12.07.2012. u 16:09 GMT+1]
[ popmilan76 @ 12.07.2012. 12:10 ] @
Sve je to lepo,a vidis koliko si ti ovde napisao redova koda...za najobicniji unos podataka....
Jos u Delphiju 3(dobro ste culi,Delphiju 3,pre 20 godina)unos podataka je sa jednim redom......
table1.insert

nista vise a vidi tvoj kod


Ja razumem da je mozda bolji vc#,a uostalom i mladji je dosta,ali i mnogo komplikovani.....Meni treba programiranje samo sa bazama podataka,nista vise,Voleo bih da naucim c sharp,bas zbog toga sto ste naveli,ali za sada je Delphi ipak bolji...I jos nesto kako da naucim c sharp,tj. kako ste ga vi naucili,koja literatura,tutoriali i sl....mene zanima samo rad sa bazama i formama,nista konzolne aplikacije
[ Shadowed @ 12.07.2012. 12:23 ] @
Vidi, te linije koda su tu zato sto je izvuceno kao primer. I u Delphi-u nije to samo table1.insert, vec je taj table1 napravljen kao neki wrapper. Mozes ti imati isto to sa Linq2SQL. Prevuces tabele, i samo radis Table.InsertOnSubmit() i DataContext.SubmitChanges() i cao.
Poredis razlicite delove jezika (a i nije ni u jednom ni u drugom slucaj jezika vec dodatnih biblioteka) pa ne mozes ni napraviti dobro poredjenje.
[ Cortex85 @ 12.07.2012. 12:53 ] @
Funkcionalnost koju ti zelis da postignes u c# moze da se svede na dve linije koda, ukoliko se koristi typed DataSet i ostale klase koje olaksavaju rad sa njim.

c#
Code:

       bindingSource.EndEdit();
       table.Update();


Evo sa ovim kodom iznad bukvalno sve sto si radio nad podacima koji su pomocu nekog BindingSourca vezani za neku tabelu DataSet-a je preneto u bazu, pod tim podrazumevam:unos novih redova, odstranjivanje obrisanih i izmenu postojećih.
Kod za hvatanje i obradu izuzetaka je izostavljen.

Pogledaj na internetu malo o ADO.NET-u, Linq2SQL-u i Entity Framework-u.

Ovo ti ozbiljno kažem, ukoliko želiš da se baviš samo bazama a nameravaš da koristiš MS SQL možda je za tebe bolje rešenje ACCESS samo nisam siguran da li u novijim verzijama postoji podrška za Access Data Project.
[ Boyka @ 12.07.2012. 15:07 ] @
Citat:
popmilan76:
Sve je to lepo,a vidis koliko si ti ovde napisao redova koda...za najobicniji unos podataka....
Jos u Delphiju 3(dobro ste culi,Delphiju 3,pre 20 godina)unos podataka je sa jednim redom......
table1.insert

nista vise a vidi tvoj kod


Ja razumem da je mozda bolji vc#,a uostalom i mladji je dosta,ali i mnogo komplikovani.....Meni treba programiranje samo sa bazama podataka,nista vise,Voleo bih da naucim c sharp,bas zbog toga sto ste naveli,ali za sada je Delphi ipak bolji...I jos nesto kako da naucim c sharp,tj. kako ste ga vi naucili,koja literatura,tutoriali i sl....mene zanima samo rad sa bazama i formama,nista konzolne aplikacije



To mozes i u C#-upreko tipizaranog dataseta. Cortex85 je napisao kako :)
[ blagkom @ 12.07.2012. 16:06 ] @
Od nekoga ko hoce sve da uradi u tri linje koda nikada programer biti neće. Drži se samo delfija.
[ Boyka @ 12.07.2012. 17:07 ] @
Citat:
blagkom:
Od nekoga ko hoce sve da uradi u tri linje koda nikada programer biti neće. Drži se samo delfija.


Tacno tako.
[ popmilan76 @ 12.07.2012. 21:49 ] @
Recite mi za literaturu a vezanu za vc# i bazu podataka,koja knjiga najbolja,,,,Ako moze i link za istu
[ wex-alpha @ 12.07.2012. 23:45 ] @
Citat:
popmilan76:
Recite mi za literaturu a vezanu za vc# i bazu podataka,koja knjiga najbolja,,,,Ako moze i link za istu




www.google.com
[ Boyka @ 13.07.2012. 08:18 ] @
Citat:
popmilan76:
Recite mi za literaturu a vezanu za vc# i bazu podataka,koja knjiga najbolja,,,,Ako moze i link za istu


Professional C# - knjiga
Head First C# - knjiga (ali mi se iskreno ne dopada)
Microsoftov sajt - http://msdn.microsoft.com/en-us/library/aa288436(v=vs.71).aspx
http://www.c-sharpcorner.com/
http://www.programiranje.co/index.php - na Srpskom, za rad sa bazama imas ADO.NET na sajtu
[ popmilan76 @ 15.07.2012. 16:17 ] @
Hvala na tutorialima,dosta su dobri....Mene zanima moze li se ubaciti podatci kada samo privuces textbox i datagrid,i kliknes na dugme i oni udju u bazu i budu zapamceni,vidim da postoji u bindingsource svojstvo addnew,ali ga ono samo ubaci,i kada izadjes tog podatka nema,kada stavim pored addnew,i update ono prikacuje gresku....Od objekata imam dole dataset,bindingsource,bindingnavigator,tableadapter...
[ Boyka @ 15.07.2012. 18:47 ] @
Citat:
popmilan76:
Hvala na tutorialima,dosta su dobri....Mene zanima moze li se ubaciti podatci kada samo privuces textbox i datagrid,i kliknes na dugme i oni udju u bazu i budu zapamceni,vidim da postoji u bindingsource svojstvo addnew,ali ga ono samo ubaci,i kada izadjes tog podatka nema,kada stavim pored addnew,i update ono prikacuje gresku....Od objekata imam dole dataset,bindingsource,bindingnavigator,tableadapter...


Jesi li siguran da ga je ubacio(jesi proverio u bazi)? Naravno da može, to su ti osnove ado dot neta. :)
[ popmilan76 @ 15.07.2012. 20:34 ] @
Proverio nije ga ubacio.....????????Jel moze malo toga koda za ubacivanje i brisanje selektovanog zapisa......Naravno,sto krace...ako je moguce ...Hvala
[ Cortex85 @ 15.07.2012. 21:42 ] @
Pozovi bindingSource.EndEdit(). Vec sam ti to napisao, sledeci put se barem potrudi da procitas.
Ono sto tebi treba jos ne postoji, a to je neki IDE iza koga se nalazi poprilicna kolicina vestacke inteligencije, gde ces ti samo da kazes kakvu aplikaciju hoces (po mogucnosti na srpkom) a IDE sve sam da uradi za tebe.
[ popmilan76 @ 20.07.2012. 08:54 ] @
Pa pozovem i Bindindingsource i nece....Ukucam bindingsource.addnew();
bindingssource.endedit();
prijavljuje mi gresku......imam bazu mydatabase(sql baza) i tabelu posta....napisite mi kod za unos,brisanje....osnovne navigacije...pozdrav












[ popmilan76 @ 20.07.2012. 23:15 ] @
ljud ne mogu da mrdnem bez osnovnih podataka,,,,zasto bindingsnavigator ne generise kod,,,pa bih ga samo prepisao,,
[ popmilan76 @ 21.07.2012. 16:52 ] @
pomagajte bratu u nevolji,zajebavam se oko prostih stvari za vas vecinu...a vidim da po sajtovima dosta ljudi muku muci sa update u bazu.....
[ pl4stik @ 21.07.2012. 19:20 ] @
http://windowsclient.net/learn/video.aspx?v=30441
http://windowsclient.net/learn/video.aspx?v=30449
http://windowsclient.net/learn/video.aspx?v=4189
http://windowsclient.net/learn/video.aspx?v=30440





[ popmilan76 @ 21.07.2012. 20:23 ] @
Ma necu toooooooooo....stavi mi na formu dugme dodaj,i da kada ga kliknem on doda to dbgrid a samim time i u bazu...ne preko navigatora,,,,
[ popmilan76 @ 22.07.2012. 15:20 ] @
i da li onaj path za konekciju moze od negde da s ekopira,ili mora da se pise....
[ Boyka @ 24.07.2012. 14:49 ] @
Citat:
popmilan76:
i da li onaj path za konekciju moze od negde da s ekopira,ili mora da se pise....


Ako si konektovan na bazu u wizardu cim se konektujes imas dole 'ConnectionString', samo ga kopiraj i eto...

mozes i preko config fajla ili preko

Settings.Properties.ConString tako nesto, ne znam napamet..
[ popmilan76 @ 24.07.2012. 20:56 ] @
Moze ceo kod ...Dakle sqlconection conn = new sqlconections(pa dceo path) itd da izadje poruka da li je otvorena ili ne
[ popmilan76 @ 18.08.2012. 13:00 ] @
sva ova dugmad rade lepo kada se koriste jednom,ali kada ponovo udjem u formu na gridview izlaze isti podaci kao pre brisanja recimo,jel treba da se ardi neki refresh ili close connection
[ popmilan76 @ 18.08.2012. 21:54 ] @
koristim ove funkcije za ubacivanje,brisanje,osvezenje....ali mi ne radi dobro refresh,nekada radi,nekada ne radi....moze li neko da pomogne

namespace Isporuka
{
public partial class Form2 : Form
{
OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Moji programi u VC#\Isporuka\Isporuka\Isporuka\baza.mdb");


public Form2()
{
InitializeComponent();
}
public DataTable Iscitaj()
{

try
{


OleDbDataAdapter da = new OleDbDataAdapter();
DataTable dt = new DataTable();
OleDbCommand sqlcom = new OleDbCommand();

sqlcom.Connection = conn;
sqlcom.CommandText = "select * from bazapisama";


da.SelectCommand = sqlcom ;
//Data punjac je primio sve iz tabele i sada to nosi do tabele dataseta
da.Fill(dt); //puni dataset
return dt; //vraca vrednost dataset tabele u C#
}
catch
{
throw; //hvata gresku ukoliko je ima
}

}
void Osvezi()
{
bazapisamaDataGridView.DataSource = Iscitaj();

}
void Ubaci()
{
try
{


OleDbCommand sqlCom = new OleDbCommand();
sqlCom.Connection = conn;
sqlCom.CommandType = CommandType.Text; //radi se o tekstualnom unosu
sqlCom.CommandText = "insert into bazapisama(Brojpisma,Prposta,Primalac,Vrednost,Otkupnina,Zaduzenje ) values(@Brojpisma,@Prposta,@Primalac,@Vrednsot,@Otkupnina,@Zaduzenje )";
//komanda za unos u bazu
sqlCom.Parameters.AddWithValue("@Brojpisma", brojpismaTextBox.Text);
sqlCom.Parameters.AddWithValue("@Prposta", prpostaTextBox.Text);
sqlCom.Parameters.AddWithValue("@Primalac", primalacTextBox.Text);
sqlCom.Parameters.AddWithValue("@Vrednsot", vrednostTextBox.Text);
sqlCom.Parameters.AddWithValue("@Otkupnina", otkupninaTextBox.Text);
sqlCom.Parameters.AddWithValue("@Zaduzenje", zaduzenjeTextBox.Text);

//Kolone iz baze dobijaju vrednost tekst boksova
//unosi se sa podrazumevanom vrednoscu, string je jednak varchar
conn.Open(); //otvaram konekciju
sqlCom.ExecuteNonQuery (); //ubacujem sve i ne zahtevam upit
}
catch
{
MessageBox.Show("Ozbiljna greska"); //ukoliko ima greske ne pokazuj nista, cuti bolje ti je hahaha :D
}
finally
{
conn.Close(); // i u svakom slucaju ti meni zatvori bazu :)
}
}
void Obrisi()
{
try
{


OleDbCommand sqlCom = new OleDbCommand();
sqlCom.Connection = conn;
sqlCom.CommandType = CommandType.Text; //radi se o tekstualnom unosu
sqlCom.CommandText = "delete from bazapisama where Brojpisma = ('" + brojpismaTextBox.Text + " ')";

//komanda za unos u bazu


//Kolone iz baze dobijaju vrednost tekst boksova
//unosi se sa podrazumevanom vrednoscu, string je jednak varchar
conn.Open(); //otvaram konekciju
sqlCom.ExecuteNonQuery(); //ubacujem sve i ne zahtevam upit
}
catch
{
MessageBox.Show("Pismo nije upisano,kontaktirajte Milana"); //ukoliko ima greske ne pokazuj nista, cuti bolje ti je hahaha :D
}

}
public void ClearTextBoxes(Control control)
{
foreach (Control c in control.Controls)
{
if (c is TextBox)
{
((TextBox)c).Clear();
}
if (c.HasChildren)
{
ClearTextBoxes(c);
}
}
}






private void Form2_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'bazaDataSet.Postarina' table. You can move, or remove it, as needed.

// TODO: This line of code loads data into the 'bazaDataSet1.Postarina' table. You can move, or remove it, as needed.

// TODO: This line of code loads data into the 'bazaDataSet1.Baza1' table. You can move, or remove it, as needed.

// TODO: This line of code loads data into the 'bazaDataSet.Bazapisama' table. You can move, or remove it, as needed.
this.bazapisamaTableAdapter.Fill(this.bazaDataSet.Bazapisama);

}

private void button1_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(brojpismaTextBox.Text))
{
MessageBox.Show("Morate uneti vrednost");
return;
}
try
{
Ubaci(); //metoda od gore za ubacivanje
Osvezi();// metoda od gore za ozvezavanje, ili ti refresh.
ClearTextBoxes(this);
brojpismaTextBox.Focus();

}
catch (Exception ex)
{
MessageBox.Show("Ozbiljna greska");
}


}



private void button2_Click(object sender, EventArgs e)
{

this.Close();
}

private void Form2_Activated(object sender, EventArgs e)
{
Iscitaj();


brojpismaTextBox.Focus();
}

private void button3_Click(object sender, EventArgs e)
{
conn.Close();

if (string.IsNullOrEmpty(brojpismaTextBox.Text))
{
MessageBox.Show("Ne postoji selektovana vrednost");
return;
}
try
{
Obrisi(); //metoda od gore za ubacivanje
Osvezi();
// metoda od gore za ozvezavanje, ili ti refresh.


}
catch (Exception ex)
{
MessageBox.Show("Pismo nije obrisano,kontaktirajte Milana");
}
}

private void button4_Click(object sender, EventArgs e)
{




}

private void Form2_Deactivate(object sender, EventArgs e)
{

Osvezi();

}

private void bazapisamaDataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)
{

}
[ popmilan76 @ 19.08.2012. 10:50 ] @
Kako da obrisem selektovano polje u datagridview,a da ga obrisem i iz baze....