Professional Documents
Culture Documents
NET Framework
.NET framework biblioteka klasa, biblioteka klasa koja omoguava kreiranje windows, web aplikacija i web
servisa
Visual Studio .NET je integrisano razvojno okruenje (IDE) koje omoguava kreiranje .NET aplikacija
Kada se kompajlira aplikacija u Visual Studio .NET-u source kod se translira u tzv. Microsoft Intermediate Langusge
(MSIL)
Runtime ukljuuje karakteristiku koja se naziva JIT just in time compilation, transliranje MSIL koda u mainski kod
Osnove C# programa
Main() metoda je statika to znai da je globalna, i klasa se ne mora instancirati da bi se metoda pozvala
Ulazni parametar WriteLine() metode je string koji treba prikazati u konzoli (DOS- prozoru)
Metoda ReadLine() eka korisniki unos koji se prosleuje metodi pritiskom na taster ENTER
Pisanje komentara
Iako je mogue pisati vie naredbi u istoj liniji, dobra je praksa da se u svakoj liniji pie samo po jedna naredba
Imena ili identifikatori se koriste za oznaavanje osnovnih objekta jezika: konstanti promenljivih, funkcija i tipova
podataka
C# tip
Veliina u bitovima
Sistemski tip
sbyte
short
int
long
byte
ushort
uint
ulong
char
bool
float
double
decimal
string
object
dynamic
8
16
32
64
8
16
32
64
16
8
32
64
128
nije raspoloivo
nije raspoloivo
nije raspoloivo
System.SByte
System.Int16
System.Int32
System.Int64
System.Byte
System.UInt16
System.UInt32
System.UInt64
System.Char
System.Boolean
System.Single
System.Double
System.Decimal
System.String
System.Object
System.Object
Konstante
Objekti jezika koji dobijaju vrednost pre nego to pone izvravanje programa i u toku rada programa ne menjaju
vrednost nazivaju se konstante
Konstante se koriste za uvanje vrednosti koje se ne mogu promeniti u toku izvravanja programa
Operator je simbol koji precizira koju akciju treba izvriti nad operandima
Operacije nad jednim operandom nazivaju se unarne operacije, a operacije nad dva operanda nazivaju se binarne
operacije
Osnovni operator dodeljivanja ( = ) prouzrokuje da se vrednost operanda na desnoj strani dodeli operandu na levoj
strani
Mnoenje (*)
Deljenje (/)
Najvei prioritet ima unarni minus, zatim multiplikativne operacije i na kraju su aditivne operacije
Inkrementiranje i dekrementiranje
Obe operacije mogu imati prefiksni oblik tj. nalaze se ispred promenljive i sufiksni oblik tj. nalaze se iza promenljive
Vee (>)
Manje (<)
Jednako (==)
Razliito (!=)
Rezultat izvravanja operacije je logika vrednost true ako je uslov ispunjen, u suprotnom je false.
Manjeg su prioriteta od aritmetikih operatora
Logike operacije
Negacija (!)
Operacija konjukcije je binarna i daje true ako oba operanda imaju vrednost true
Operacija disjunkcije je binarna i daje true ako je bar jedan od operanada ima vrednost true
Kod je lake itati jer se vrednostima dodeljuju imena koja je lako identifikovati
Lake je pisanje koda jer IntelliSense prikazuje listu moguih vrednosti koju moemo koristiti
Enumeracijski tip: Definie se unutar klase ili unutar namespace-a, Ne unutar metode !
Nizovi
Naredba foreach
Dvodimenzionalan niz
Ugraeni (osnovni, primitivni tipovi podataka) npr. float, int, double, object,...
Ravnopravno se definiu korisniki definisani tipovi apstraktni tipovi podataka: TekuciRacun, Osoba, Student,
Proizvoljan broj primeraka nekog tipa i mogu se vriti operacije nad njima
Enkapsulacija
Realizija nekog tipa podataka moe i treba da se sakrije od ostatka sistema tj. onih koji ga koriste
Klasa :
Objekti:
Methods
Properties
Events
Delegates
Constructors
Destructors
Kreiranje objekata
Constants
Da bi se pristupilo javnom lanu klase koristi se ime instance iza koga sledi operator taka
Metode klase
tip podataka koga metoda vraa (ili void ukoliko ne vraa podatke)
naziv(ime metode)
listu parametara
telo metode
Ukoliko metoda vraa neku vrednost, onda se unutar tela metode mora pozvati naredba return.
Definisanje prava pristupa lanovima klase
Deklaracija
Definicija
public
private
internal
protected
Svojstva (Properties)
public decimal Plata
{
get { return plata; }
set { plata = value; }
}
Postavljanje privatnog set aksesora
class Osoba
{
public Guid Id { get; private set; }
public string Ime { get; set; }
public string Prezime { get; set; }
public Osoba()
{
this.Id = Guid.NewGuid();
}
}
Ne mogu se nasleivati
Nasleivanje i polimorfizam
Nasleivanje
Osnovna klasa se naziva jo i natklasa, bazna klasa, roditeljska klasa (parent class), super klasa
public seald class NekaKlasa {telo klase} tada se iz ovakve klase ne moe vriti nasleivanje
Svi tipovi u .NET frameworku su nasleeni direktno ili indirektno iz klase System.Object
Polimorfizam
Kada se kreira metoda u baznoj klasi za koju se oekuje da e biti promenjena u izvedenoj klasi, metoda se definie kao
virtuelna.(virtual)
Metoda u izvedenoj klasi koja ima isto ime kao i virtuelna metoda u baznoj klasi vri prebrisavanje (override)
metode iz bazne klase
Pojam windows forme
Windows forme se kreiraju u sluajevima kreiranja desktop aplikacija i kada se oekuje da klijentski raunari imaju
dovoljno snage da izvre odgovarajuu obradu podataka
ASP.NET Web forme se kreiraju u sluajevima kada je korisniki interfejs web browser i za aplikacije koje se
objavljuju putem web-a
Name ovo svojstvo postavlje ime forme odnosno ime odgovarujue klase
Kontrola Label
Na dugme se moe kliknuti miem, pritiskom na taster ENTER, pritiskom na taster ESC ili pritiskom na SPACE
taster(kada dugme ima fokus)
Ako se kao AcceptButton (CancelButton) forme postavi odgovarajue dugme tada se pritiskom na taster ENTER (Esc)
izvrava klik na to dugme
Moe se koristiti DialogResult property dugmeta da bi se specificirala povratna vrednost ShowDialog() metode
Text property se koristi za itanje sadraja tekst boksa ili prikaz sadraja u tekst boksu
Podrazumevani dogaaj ove kontrole je TextChanged koji se generie svaki put kada se promeni tekst u TextBox
kontroli
Dogaaj KeyDown generie se kada se pritisne neki taster na tastaturi pre nego to se otpusti
Obrada dogaaja KeyDown
Svojstvo AcceptsTab odreuje da li je mogue koristiti taster TAB unutar ove kontrole
Metoda SaveFile()
Mora postojati folder Temp na fajl sistemu
Metoda LoadFile()
Metoda Clear()
CheckBox kontrola
Dogaaj CheckedChanged se okida kada CheckBox kontrola prelazi iz stanja ekirano u stanje deekirano ili
obrnuto.
RadioButton kontrola
Samo jedno radio dugme u grupi moe biti ekirano u jednom trenutku
Dogaaj CheckedChanged se okida kada RadioButton kontrola prelazi iz stanja ekirano u stanje deekirano ili
obrnuto.
Kreiranje nemodalne forme
public virtual string ToString(); - metoda vraa string koji opisuje instancu klase
Metoda koja menja string u stvari vraa promenjenu kopiju dok originalni string ostaje nepromenjen sve dok se ne
uniti od strane Garbage Collector-a
Stringovi se mogu sortirati, kopirati, konvertovati u druge tipove i mogua je njihova enumeracija korienjem foreach
petlje
String.Format()
Metode EndsWith() i StrartsWith()
Metode ToUpper() i ToLower()
Poreenje stringova CompareTo()
Pronalaenje pozicije karaktera ili podstringa u stringu IndexOF()
Izdvajanje podstringa Substring()
Metoda Split()
Metode PadLeft() i PadRight()
Osobina nepromenljivosti stringova
Stringovi su nepromenljivi(immutable) tj. nakon toga to se string sauva u memoriji ta memorijska lokacija se ne
moe promeniti
Linija koda: s += i.ToString(); kreira novi string i onda rezultat uva na novoj memorijskoj lokaciji
Ako aplikacija esto manipulie stringovima u memoriji se uvaju nepotrebni podaci ekajui sledei period
odnoenja smea
String bilder alocira inicijalnu vrednost od 16 karaktera i kako string postaje vei alocirana memorija se proirila da bi
se prilagodila duini stringa (slino kao kod kolekcija)
DateTimePicker Kontrola
Ukoliko se kao Fomat setuje Time, treba postaviti svojstvo ShowUpDown na vrednost True
Pojam izuzetaka
Izuzetak je objekat koji sadri informacije o greci koja nastaje tokom izvravanja koda
Izuzetak je objekat izveden iz klase Exception ili klase koja je izvedena iz klase Exception
Naredbe unutar catch bloka se izvravaju ukoliko je izuzetak izbaen unutar try bloka.
Moe se definisati vie catch blokova od kojih svaki obrauje specijalizovanu klasu izuzetaka.
Blok finally omoguava da se oslobode resursi i da se specificira kod koji e se uvek izvriti nezavisno od toga da li je
dolo do izuzetka ili ne
Ukoliko postoji vie catch blokova tada treba prvo hendlovati izuzetke koji su vie specijalizovaniji, a zatim optije.
OpenFileDialog
SaveFileDialog
FontDialog
ColorDialog
FolderBrowserDialog
Nizovi
Pojam kolekcije
Kolekcije se upotrebljavaju za upravljenje grupama objekata i imaju vie funkcionalnosti nego nizovi
Klase
ArrayList
Queue
Stack
Hashtable
Nisu type-safe
Interfejsi
Kolekcija ArrayList
Metoda GetEnumerator() takoe vraa iterator kojim se vri iteracija kroz elemente liste.
Generiki renici
Dictionary
Dictionary<TKey, TValue>
ComboBox kontrola
comboBox1.Items.Add(stavka1);
ADO.NET
System.Data
System.Data.SqlClient
System.Data.OleDb
System.Data.SqlTypes
System.Xml
Konektovani scenario
Podaci su aurni
Otvaranje konekcije
Izvravanje komande
Zatvaranje konekcije
Diskonektovani scenario
Dok se korisnik nalazi u diskonektovanom radu ostali korisnici mogu da koriste konekciju
Kada se podacima iz lokalne kopije podataka aurira baza moe doi do konflikta
Korienje ADO.NET klasa u diskonektovanom scenariju
Otvaranje konekcije
Punjenje DataSet-a
Zatvaranje konekcije
Obrada podataka u DataSet-u
Otvaranje konekcije
Auriranje izvora podataka
Zatvaranje konekcije
Konekcije
Pre bilo kakvog rada sa bazom podataka potrebno je kreirati a zatim otvoriti konekciju
Svaki SqlConnection objekat je izveden iz klase DbConnection koja se nalazi u prostoru imena System.Data.Common
Svostvo ConnectionTimeout specificira vreme dozvoljeno za uspostavljenje konekcije nakon ega se generie poruka
o greci
Metode i dogaaji klase DbConnection
Metoda Open() otvara konekciju na bazu podataka koristei vrednosti specificirane u konekcionom stringu
Dogaaj StateChange se trigeruje kada se stanje konekcije menja (npr. iz otvorenog u zatvoreno)
Objekat SqlCommand
Pomou njega mogue je izvravati SELECT, INSERT, UPDATE i DELETE naredbe nad elementima baze podataka
Svojstva SqlCommand objekta
Svojstvo CommandText predstavlja tekst SQL komande ili naziv uskladitene procedure
Parameters svojstvo daje kolekciju parametara SqlCommand objekta koji se koriste za izvravanje parametarskih
upita
Metode SqlCommand klase
Metoda ExecuteNonQuery() izvrava izvrava SQL komande ili uskladitene procedure koje ne vraaju vrednosti
(INSERT, UPDATE, DELETE)
Metoda ExecuteScalar() se koristi za izvravanje SQL komandi ili uskladitenih procedura koje vraaju jednu skalarnu
vrednost
SqlDataReader
SqlDataReader je brz (read-only,forward -only) kursor koji se pomera kroz skup zapisa
Otvara se konekcija
Kada Read() metoda vrati false zatvara se objekat SqlDataReader i objekat SqlConnection
Svojstva i metode DataReader objekta
Read() metoda
uitava zapis
vraa true ako ima jo zapisa, false ukoliko se stiglo do poslednjeg zapisa
Vraene vrednosti su u izvornom formatu i potrebno je izvriti njihovo kastovanje da bi mogle da se koriste
Parametri se mogu shvatiti kao promenljive koje se koriste za razmenu podataka izmeu aplikacije i baze podataka
Tipovi parametara
Output izlazni parametri se koriste za prihvatanje podataka od baze podataka nakon izvravanja odreenih upita
SqlDataAdapter prima podatke od objekta SqlConnection i prosleuje ih objektu DataSet (itanje iz baze)
Promene na podacima iz objekta DataSet prosleuje nazad do objekta SqlConnection kako bi se podaci aurirali u
samom izvoru podataka (upis u bazu auriranje)
Karakteristike objekta SqlDataAdapter
Insert, Update i Delete komande se koristi da se promene nad podacima u DataSetu iskoriste za auriranje podataka u
bazi
Svojstva:
SelectCommand
InsertCommand
UpdateCommand
DeleteCommand
Metode:
Fill
Update
DataSet objekat
DataSet je memorijska predstava podataka, koja ukljuuje tabele, relacije izmeu tabela i ogranienja
Podaci u DataSet-u se uvaju na slian nain kao to se uvaju u relacionoj bazi podataka
Relations property predstavlja kolekciju objekata DataRelation, objekti DataRelations se koriste za opis veza izmeu
tabela u DataSet-u
Naredba LIKE
Netipizirani DataSetovi
Tipizirani DataSetovi
Povezivanje podataka
Povezivanje podataka (Data binding) je tehnika u kojoj se podaci iz baze podataka koriste za popunjavanje kontrola na
windows ili web formi uz minimalni napor od strane programera.
Povezivanje podataka sa kontrolom oznaava povezivanje nekog svojstva kontrole sa vrednou iz izvora podataka.
Npr. kod kontrola kao to su Label i TextBox vri se jednostavno povezivanje njihovog Text svojstva sa kolonom jedne
vrste tabele iz baze podataka (jedne elije tabele).
Takoe se mogu povezivati kontrole kao to su ComboBox, ListBox sa kolonom iz tabele u bazi podataka i tada se radi
o kompleksnom povezivanju.
Kompleksnije kontrole kao to su DataGridView omoguavaju prikaz kompletnog sadraj tabele ili pogleda.
BindingSource kontrola
Obezbeuje uobiajeni interfejs i funkcionalnost koja omoguava da se kontrola povee sa izvorom podataka.
Kada god se povezuje kontrola sa izvorom podataka u dizajn modu ili korienjem wizarda, kreira se BindingSource
kontrola.
Metoda EndEdit izvrava ekajue promene na pridruenom izvoru podataka (najee DataSet)
Metoda AddNew dodaju novu stavku u listu podataka sa kojom je povezana BindingSource kontrola (najee dodaje
red u DataTable objekat)
RemoveCurrent metoda uklanja tekui lan iz liste (najee red iz DataTable objekta)
BindingNavigator
BindingNavigator je kontrola koja je izvedena iz kontrole ToolStrip i omoguava navigaciju kroz podatke korienjem
standardnog interfejsa.
Omoguava kretanje kroz vrste neke tabele, skok na prvu vrstu ili na poslednju vrstu tabele.
Njeno svojstvo BindingSource mora biti postavljeno na vrednost neke instance klase BindingSource.
Svojstvo DisplayMember definie kolonu iz tabele koju treba prikazati.
Svojstvo ValueMember odreuje vrednost stavke comboBox kontrole
DataGridView kontrola
Uvod u DataGridView
DataGridView je mona, fleksibilna kontrola, jednostavna za korienje, koja se koristi za prikaz tabelarnih podataka.
Moe da se povee sa jednom tabelom iz baze ili sa objektom koji je izveden iz tabele.
Korienjem svojstva DataSource povezuje sa sa objektom klase DataTable ili objektom klase koja je izvedena iz klase
DataTable.
Ako se izvri povezivanje sa objektom klase DataSet mora se specificirati i njeno svojstvo DataMember kojim se
naznaava sa kojom tabelom se vri povezivanje
Dozvoljava razliite tipove selekcije: moe se selektovati jedna ili vie vrsta, jedna ili vie kolona, jedna ili vie elija,
ili cela tabela (klikom na eliju u gornjem levom uglu)
Osobine DataGridView kontrole
Ima automatski tooltip kojim se prikazuje ceo sadraj elije kada se pokaziva mia nalazi iznad nje
Dvostrukim klikom izmeu hedera kolona vri se automatsko podeavanje irine kolone.
Omoguava unos sadraja u eliju nakon dvostrukog klika na eliju
DataGridView objekti
DataGridViewRow objekat ima svojstvo Cells kojim se prikazuje kolekcija DataGridViewCell objekata
Selekcija u DataGridView kontroli
DataGridView kontrola ima svojstvo SelectionMode koje moe imati sledee vrednosti:
CellSelect
FullColumnSelect
FullRowSelect
ColumnHeaderSelect
RowHeaderSelect
Svojstvo MultiSelect postavljeno na vrednost True omoguava selektovanje vie redova, kolona ili elija.
Svojstva DataGridView kontrole vezana za selekciju
SelectedCells svojstvo vraa kolekciju DataGridViewCell objekat nezavisno od moda selekcije DataGridView kontrole
SelectedRows
SelectedColumns
Klase izvedene iz klase DataGridViewColumn
DataGridViewButtonColumn prikazuje tekst kao dugme na koje se moe kliknuti, njoj odgovarajua klasa za eliju je
DataGridViewButtonCell.
ListView kontrola
ListView omoguava da se prikae lista stavki kojima se mogu pridruiti slike kao u Windows eksploreru
Omoguava da se stavke prikazuju na jedan od etiri razliita naina:
prikaz detalja
Stavke ListView kontrole su objekti klase ListViewItem
Svojstvo Columns sadri kolekciju kolona koje e biti prikazani u reimu detalja
Svojstvo Items daje kolekciju ListViewItem objekata koji e biti prikazani u ListView kontroli
Svojstvo LargeImageList ukazuje na ImageList komponentu iz koje e biti prikazane slike u ListView kontroli kada je
njeno View svojstvo postavljeno na vrednost LargeIcon
Svojstvo SmalImageList ukazuje na ImageList komponentu iz koje se prikazuju slike kada je View svojstvo ListView
kontrole postavljeno na vrednost SmallIcon