C# primjeri za dodavanje obijekata u SQL bazu poda

poruka: 18
|
čitano: 9.809
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
16 godina
neaktivan
offline
C# primjeri od "pravih majstora"
pitanje

Pozdrav Svima...

 

Dali netko zna neke dobre stranice, ili čak neke konkretne primjere za npr.

- dodavanje novog kupca ili proizvoda ili sl. u SQL server bazu podataka.

- brisanje istih

- update istih

 

za desktop aplikacije, uz razne kontrole i validacije...

 

Zanimaju me razni načini na koje se sve to može uraditi, pod uvijetom da su ih radili iskusni developeri...

 

 

HVALA


_ _ _
(_) (_) | |
_ __ _ _ __ ___ _ __| |
| '_ \| | '_ \ / _ \| |/ _` |
| | | | | | | | (_) | | (_| |
|_| |_|_|_| |_|\___/|_|\__,_|

 

bila je ekstaza, moja bivsa staza...
 
0 0 hvala 0
17 godina
offline
RE: C# primjeri od "pravih majstora"
ninoid kaže...

Pozdrav Svima...

 

Dali netko zna neke dobre stranice, ili čak neke konkretne primjere za npr.

- dodavanje novog kupca ili proizvoda ili sl. u SQL server bazu podataka.

- brisanje istih

- update istih

 

za desktop aplikacije, uz razne kontrole i validacije...

 

Zanimaju me razni načini na koje se sve to može uraditi, pod uvijetom da su ih radili iskusni developeri...

 

 

HVALA


_ _ _
(_) (_) | |
_ __ _ _ __ ___ _ __| |
| '_ \| | '_ \ / _ \| |/ _` |
| | | | | | | | (_) | | (_| |
|_| |_|_|_| |_|\___/|_|\__,_|

 

 uzmi neku knjigu o ado.net-u (ako si na microsoft tehnologiji)
ili bilo koju o programiranju... sve imaju i rad s kontrolama i spajanja na bazu....
17 godina
neaktivan
offline
C# primjeri za dodavanje obijekata u SQL bazu poda

Uh, pitanje ti nije na mjestu nimalo, vidi se da si tek poceo s interesiranjem za baze podataka...probaj si nabaviti nekoliko dobrih knjiga, raspitaj se u njima o principu i nacelu rada baza podataka, njihovoj svrsi,alatima za njihovo upravljanjanje i odrzavanje itd. Primjer koji si naveo nema smisla (dodavanje kupaca na SQL server), no sta god da si zamislio moguce je napraviti...i wish you luck

Da zlo pobijedi, dovoljno je samo da dobri ljudi ne ucine nista.
 
0 0 hvala 0
16 godina
neaktivan
offline
RE: C# primjeri za dodavanje obijekata u SQL bazu
autorov komentar

Možeš li zamisliti da imam gotovu bazu...

E pa sada kada je taj dio gotov, zanimaju me neki dobri C# mehanizmi (algoritmi) za rad sa obijektima te baze.

 

 

Jeli ti sada jasno?

bila je ekstaza, moja bivsa staza...
17 godina
offline
C# primjeri za dodavanje obijekata u SQL bazu poda

Kako su ti već i prije odgovorili, uzmi knjigu za C#i ADO.NET, LINQ i neku dobru za SQL. Jer ako si početnik u programiranju u C#-u sa bazama podataka, to ti je dobar početak. Sad da ti tu netko piše nekoliko stotina linija koda, mislim da nema smisla.

AMD Phenom 9500 GA 790x DS4 RAM : 4 GB ATI RADEON 4850
 
0 0 hvala 0
17 godina
offline
C# primjeri za dodavanje obijekata u SQL bazu poda

Ovako, ja neznam kako ide sa C#, al mogu ti copy pasteat svoju ASP.Net klasu za komunikaciju sa bazom (u mom slucaju sa mySQLom), ja mislim da su objekti u C# isti, samo je sintaksa drugacija:

 

Ovo ti je kod za npr upis u bezu (kada baza podataka ne vrace nikakve retke, ovo koristis za update baze, brisanje i tako to, gdje ti je SQL zapravo SQL upit (npr select * from useri)

 Public Sub DBRead(ByVal SQL As String)

 

Const myConnString As String = "server=localhost; user id=xxx; password=xxx; database=xxx; pooling=false;"
Public myConnection As MySqlConnection
Public myCommand As MySqlDataAdapter
Public myDataSet As DataSet
Public myDataReader As MySqlDataReader

myConnection = New MySqlConnection(myConnString)

myCommand = New MySqlDataAdapter(SQL, myConnection)
myDataSet = New DataSet
myCommand.Fill(myDataSet)
myConnection.Close()

END SUB

 

Ovo koristis kada zelis citati iz baze, odnosno kada baza vraca nekakve retke iz tablice

 

Public Function DBADORead(ByRef SQL As String) As MySql.Data.MySqlClient.MySqlDataReader

 

Const myConnString As String = "server=localhost; user id=xxx; password=xxx; database=xxx; pooling=false;"
Public myConnection As MySqlConnection
Public myCommand As MySqlDataAdapter
Public myDataSet As DataSet
Public myDataReader As MySqlDataReader


            myConnection = New MySqlConnection(myConnString)
            myConnection.Open()
            Dim myDataReader As MySqlDataReader
            Dim myADOCommand As MySqlCommand = New MySqlCommand(SQL, myConnection)
            myDataReader = myADOCommand.ExecuteReader()
            DBADORead = myDataReader
        End Function

 

I'm going woo woo
 
0 0 hvala 0
17 godina
offline
C# primjeri za dodavanje obijekata u SQL bazu poda

Ukratko:

- primjer koda bi dosta ovisio o bazi. Mozes imati dvije ili deset tablica ovisno o modelu podataka i poslovnom modelu sustava

- Citanje i pisanje u .netu moze ici sa ovim "tehnologijama"/objektima:

   DataReader - najnizi nacin rada sa bazom i nabrzi

   DataSetovi/TableAdapteri - mogu biti rucno pisani ili napravljeni uz pomoc dizajnera (strongly typed)

   Neki ORM alat tipa LINQ2SQL

   Mozemo ovdje cak dodati i razne web/win kontrole (SqlDataSource, razni gridovi i binderi...) s kojima se moze raditi bez puno programiranja

- kada nadzes primjere koda za neke od ovih tehnologija, onda je svejedno sto citas iz baze

- googlaj za primjer. Dobiti ces gotovu aplikaciju. Ovdje ti ljudi mogu dati samo specificne primjere ako trazis nesto odredzeno

"A developer is a machine that converts coffee into code"
Moj PC  
0 0 hvala 0
17 godina
offline
RE: C# primjeri za dodavanje obijekata u SQL bazu

 using (SqlConnection conn = new SqlConnection(CONNECTION_STRING))
            {
                try
                {
                    conn.Open();

                    using (SqlCommand cmd = new SqlCommand("SELECT * FROM dbo.nesto WHERE parm1=@parm1", conn))
                    {
                        cmd.Parameters.Add(new SqlParameter("@parm1", OBJEKT_PARAMETRA_PARM1));

                        using (SqlDataReader r = cmd.ExecuteReader())
                        {
                            using (DataTable dt = new DataTable())
                            {
                                dt.Load(r, LoadOption.OverwriteChanges);
                               
                                // ucini nesto sa datatable-om
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }

17 godina
neaktivan
offline
C# primjeri za dodavanje obijekata u SQL bazu poda

Moraš i objasniti da je prethodni kod loš, a tvoj koristi using zbog implicitne destrukcije objekata (dispose) i zašto je to dobra praksa.

 

Ali svejedno mislim da autoru teme baš ovo i nema smisla jer mi se čini da mu nisu jasne ni osnove dizajna aplikacija, a kamoli programiranje i sl. stvari. Mora krenuti od početka.

Liniću i Šukeru je nakon n-te svađe odbrosio: "Ko pit bulovi ste!" Na to mu je Šuker, prisno uzvratio: "Najveći pitbul si ti!", na što je Bago ne trepnuvši ispalio: "Ne, pokraj vas sam pudlica!"
Moj PC  
0 0 hvala 0
17 godina
offline
RE: C# primjeri za dodavanje obijekata u SQL bazu
naxeem kaže...

Moraš i objasniti da je prethodni kod loš, a tvoj koristi using zbog implicitne destrukcije objekata (dispose) i zašto je to dobra praksa.

 

 
Onda to ubija čari ucenja ;)

Dobio je sve :)
* zna koje klase imaju implementiran IDisposable interface (famozni using statement)
* parametriziran query - samo mora saznati zasto je to dobro raditi
* try-catch (finally nije potreban zbog using) za hvatanje exceptiona

ovo nije skola :) htio je kvalitetan i efikasan kod za osnove - dobio ga je :) neka mu bude smjernica "kako se stvari rade" :)

s napomenom da je to stvarno osnova osnove. bez Retry mogucnosti, transakcija, i sl. :)

i jos dodatna napomena: ako je slucajno objekt parametra = null, skace exception :)
Poruka je uređivana zadnji put čet 2.10.2008 11:24 (dado).
16 godina
neaktivan
offline
C# primjeri za dodavanje obijekata u SQL bazu poda
autorov komentar

Vidim da je ovde prava rasprava nastala. Svi se zadali, a mene nigdje...

 

Ovako. Početnik u programiranju definitivno nisam i lijepo je čitati knjjige o CSharp-u, ADO.NET-u i odgovarajućim obijektima u svakom slučaju...


tnakir i dado, hvala vam.

Vaši kodovi su mi savršeno jasni, ali mislim da se nismo razumijeli. Nisam ni tražio da mi netko ovdije pise algoritme!

Više sam tražio da me netko uputi na neki kvalitetan primjer, kako se to radi u nekoj dobroj aplikaciji.

 

I da, naxeem, nisi se trebao mučiti i dodatno komentirati te using iskaze, furam ja to i bez tebe...

 

Jedini me je hudo shvatio.

 

U svakom slučaju HVAML VAM...

 

 

 

ninoid®

 

 

 

bila je ekstaza, moja bivsa staza...
 
0 0 hvala 0
17 godina
neaktivan
offline
RE: C# primjeri od "pravih majstora"

Iz tvog pitanja prilično je lako zaključiti da ti nisu jasni neki osnovni pojmovi i koncepti, pa tako i da si zelen. To nije sramota.

Liniću i Šukeru je nakon n-te svađe odbrosio: "Ko pit bulovi ste!" Na to mu je Šuker, prisno uzvratio: "Najveći pitbul si ti!", na što je Bago ne trepnuvši ispalio: "Ne, pokraj vas sam pudlica!"
17 godina
offline
RE: C# primjeri za dodavanje obijekata u SQL bazu
tnakir kaže...

Ovako, ja neznam kako ide sa C#, al mogu ti copy pasteat svoju ASP.Net klasu za komunikaciju sa bazom (u mom slucaju sa mySQLom), ja mislim da su objekti u C# isti, samo je sintaksa drugacija:

 

Ovo ti je kod za npr upis u bezu (kada baza podataka ne vrace nikakve retke, ovo koristis za update baze, brisanje i tako to, gdje ti je SQL zapravo SQL upit (npr select * from useri)

 Public Sub DBRead(ByVal SQL As String)

 

Const myConnString As String = "server=localhost; user id=xxx; password=xxx; database=xxx; pooling=false;"
Public myConnection As MySqlConnection
Public myCommand As MySqlDataAdapter
Public myDataSet As DataSet
Public myDataReader As MySqlDataReader

myConnection = New MySqlConnection(myConnString)

myCommand = New MySqlDataAdapter(SQL, myConnection)
myDataSet = New DataSet
myCommand.Fill(myDataSet)
myConnection.Close()

END SUB

 

Ovo koristis kada zelis citati iz baze, odnosno kada baza vraca nekakve retke iz tablice

 

Public Function DBADORead(ByRef SQL As String) As MySql.Data.MySqlClient.MySqlDataReader

 

Const myConnString As String = "server=localhost; user id=xxx; password=xxx; database=xxx; pooling=false;"
Public myConnection As MySqlConnection
Public myCommand As MySqlDataAdapter
Public myDataSet As DataSet
Public myDataReader As MySqlDataReader


            myConnection = New MySqlConnection(myConnString)
            myConnection.Open()
            Dim myDataReader As MySqlDataReader
            Dim myADOCommand As MySqlCommand = New MySqlCommand(SQL, myConnection)
            myDataReader = myADOCommand.ExecuteReader()
            DBADORead = myDataReader
        End Function

 

 Imas gore sub DBRead; za njeno koristenje ti ide sintaksa:

DBRead("Delete from user where id_user = 5") 'brisanje
DBRead("Update User set ime = 'Ante' WHERE id_User = 5")

Za citanje iz baze
Dim myRecordset = Neki novi recordset

myRecordset = DBAdoRead("Select * from User")

Dalje sa njim radis sta hoces

Npr za Win aplikaciju ja mislim da ide npr TextBox1.Text = myRecordset("Ime")

Dosta ljudi preporucuje DataRepeater za web aplikacije al meni je bio dosta nepraktican. Da ne spominjem razne datagridove... To je po meni za moj posao apsolutno nepotrebljivo!
I'm going woo woo
17 godina
neaktivan
offline
C# primjeri za dodavanje obijekata u SQL bazu poda

Koristi opciju edit, a ne svaka rečenica novi post.

Liniću i Šukeru je nakon n-te svađe odbrosio: "Ko pit bulovi ste!" Na to mu je Šuker, prisno uzvratio: "Najveći pitbul si ti!", na što je Bago ne trepnuvši ispalio: "Ne, pokraj vas sam pudlica!"
Moj PC  
0 0 hvala 0
17 godina
neaktivan
offline
C# primjeri za dodavanje obijekata u SQL bazu poda

Edit: sve sam pobrisao. Nema smisla da se prepiremo i svađamo jer je svrha foruma pomoći i naučiti, a ne osobna promocija pa ću samo reći da je i pod cijenu uvrijeđenih na kritike važno naučiti dobru praksu, a ne slijepo kopirati kod. Parametrizirati upite na bazu, zatvarati konekcije, rješavati se objekata...

Liniću i Šukeru je nakon n-te svađe odbrosio: "Ko pit bulovi ste!" Na to mu je Šuker, prisno uzvratio: "Najveći pitbul si ti!", na što je Bago ne trepnuvši ispalio: "Ne, pokraj vas sam pudlica!"
Poruka je uređivana zadnji put sub 4.10.2008 14:39 (naxeem).
Moj PC  
0 0 hvala 0
16 godina
neaktivan
offline
C# primjeri za dodavanje obijekata u SQL bazu poda

Jeb--m---pas---

Pa ovo fakat više nije normalno!

Sjećam se vremena cobol, pascala i ostalih. A ovi novi jezici - ko političari!!

Puno toga veliš a nikaj ne rečeš!

 

 

Kad mi je bivši prof inf rekao da napišem prog u ass dug oko 8kb da dobijem 5, rekoh "nema frke!"

Nakon toga, naravno da nisam dobio 5...

Poruka je uređivana zadnji put sub 4.10.2008 23:43 (mrgud).
 
0 0 hvala 0
17 godina
offline
RE: C# primjeri za dodavanje obijekata u SQL bazu
prihvaćeno rješenje
ninoid kaže...

Vaši kodovi su mi savršeno jasni, ali mislim da se nismo razumijeli. Nisam ni tražio da mi netko ovdije pise algoritme!

Više sam tražio da me netko uputi na neki kvalitetan primjer, kako se to radi u nekoj dobroj aplikaciji.

 

 

 
Mogu te ja jako dobro uputiti, samo ne znam koliko ce ti to biti jasno s obzirom da nisi upoznat sa bazama u .NET-u.

No svejedno,  evo ti savjet:


Rekao si da zelis spremati objekte u bazu. Cak nisi bio daleko od istine. Moguce je spremiti objekt u bazu. Samo prije toga moras tu bazu i sve njene relacije opisati XML-om. Zatim uzmes nesto najbolje sto se svijetu programiranja dogodilo - NHibernate ( http://www.hibernate.org/343.html ) i radis sa objektima.

Vjerojatno ce ti NHibernate biti jako kompliciran posto moras raditi XML da bi opisao svoju bazu. Ako nemas komplicirane relacije onda ti savjetujem ActiveRecord koji "lezi" na vrhu NHibernate-a ciji je mapper.

Ukratko da ti objasnim sto je NHibernate i ActiveRecord. To je ORM koji umjesto klasicnog nacina rada sa bazama nama OO programerima daje objektni pristup bazi. Ja generiram tablicu "klijenti" koja ima atribute ime,prezime,email. Uz pomoc ActiveRecord mappiram tu tablicu u objekt kojem kasnije pristupam na primjer

Klijenti klijent = new Klijenti(); // dodajem novi zapis u bazu
klijent.Ime="Pero";
klijent.Prezime="Zdero";
klijent.Email="nesto@drugo.com";
klijent.Save();  // NHibernate sada sprema taj podatak u bazu. kako? nije me briga ;)

NHibernate-u je potrebno definirati "dijalekt" baze s kojom radi. Na temelju tog dijalekta, NHibernate ce generirati SQL za rad nad bazom.

U tvom kodu ti sa tom svojom bazom radis na OO principu (nemas vise SQL i queryje nego radis sa punokrvnim objektima) a baza u pozadini moze biti bilo koja (podrzana od NHibernate-a). Znaci ukratko, ti svoj kod mozes dignuti na MSSQL, MySQL, Postgres, Oracle... Nije bitno jer nemas niti jednu liniju SQL-a u svoj programu. Za sve se brine NHibernate.

U razvoju je i LINQ to NHibernate ( http://www.hookedonlinq.com/LINQToNHibernate.ashx ) sto ce jos vise uciniti OO pristup radu nad bazama. Ako vise preferiras komercijalna rjesenja, imas Diamond Binding ( http://dunnchurchill.com/products/diamondbinding/ )


Eto, to je ukratko, po meni, pravi nacin za rad sa bazama. Naravno, ovo sto je napisano je 0.1% onog sto NHibernate moze. Postoje cijele knjige o tome.

Za pocetak procitaj ovdje kratki tutorial da dobijes sliku o cemu pricam

A ako zelis koristiti samo NHibernate (sto ti ne preporucam ako imas jedostavne relacije) onda pogledaj ovaj primjer:

Naravno, sve sto mozes napraviti rucno SQL-om mozes i ovim nacinom (relacije, joinovi, agregacije). Stovise, NHibernate ce vjerojatno izgenerirati kvalitetniji SQL nego sto ces ti ;)


NHibernate je sestrinski projekt Hibernate-a portan u C#. U originalu Hibernate je postao standard za razvoj aplikacija na bazama u Javi. I danas se vjerojatno ne mozes zaposlit kao Java programer a da se ne susretnes sa Hibernateom.

Pa je moj savjet svima koji se ozbiljno zele bavit .NET programiranjem poslovnih aplikacija sa bazama, da prouce NHibernate. Meni je trebalo negdje oko 5 mjeseci da "masteriram" NHibernate. I onda naletim na ActiveRecord koji pokriva sve moje zahtjeve nad bazama :-D


Nadam se da ce ovaj post pomoci svima koji misle ozbiljno zagrist u baze Osmijeh
Poruka je uređivana zadnji put ned 5.10.2008 8:11 (dado).
16 godina
neaktivan
offline
C# primjeri za dodavanje obijekata u SQL bazu poda
autorov komentar

Hvala Dado...

 

Treba sve ovo sada savladati,

ali kada upali onda je to PUN POGODAK!!

 

 

tako se to radi...

 

 

Pozdrav,

ninoid®

bila je ekstaza, moja bivsa staza...
 
0 0 hvala 0
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice