50 najpopularnijih pitanja i odgovora za intervju za ADO.NET (2026.)

Pitanja i odgovori za intervju za ADO.NET

Priprema za ADO.NET intervju znaฤi predviฤ‘anje ลกto intervjuisti cijene. Rasprava o pitanjima na ADO.NET intervjuu pomaลพe u otkrivanju dubine, sposobnosti rjeลกavanja problema i razumijevanja koncepata pristupa podacima koje poslodavci aktivno procjenjuju.

Savladavanje ovih pitanja otvara radna mjesta u razvoju poduzeฤ‡a, analitici i backend sustavima. Kandidati pokazuju tehniฤku struฤnost, stvarno profesionalno iskustvo i razumijevanje domene steฤeno radom u tom podruฤju. Od studenata prve godine do viลกih struฤnjaka, menadลพeri i voditelji timova cijene praktiฤne analitiฤke vjeลกtine, usklaฤ‘enost vjeลกtina i sposobnost rjeลกavanja uobiฤajenih tehniฤkih rasprava.
ฤŒitaj viลกeโ€ฆ

๐Ÿ‘‰ Besplatno preuzimanje PDF-a: Pitanja i odgovori za intervju za ADO.NET

Najฤeลกฤ‡a pitanja i odgovori na intervjuu za ADO.NET

1) ล to je ADO.NET i koju ulogu igra u .NET aplikacijama?

ADO.NET (ActiveX podatkovni objekti .NET) je tehnologija pristupa podacima u roku od Microsoft .NET Framework se koristi za interakciju s bazama podataka i drugim izvorima podataka kao ลกto su XML datoteke. Pruลพa skup klasa i suฤelja koja omoguฤ‡uju povezivanje s izvorom podataka, izvrลกavanje upita ili naredbi te dohvaฤ‡anje i manipuliranje podacima. ADO.NET podrลพava oboje povezano (veza s bazom podataka u stvarnom vremenu) i iskljuฤeno (pristup podacima u memoriji) modele, ลกto ga ฤini fleksibilnim za ลกirok raspon zahtjeva primjene.


2) Koje su glavne komponente ADO.NET-a?

Arhitektura ADO.NET-a sastoji se od nekoliko kljuฤnih komponente koje rade zajedno kako bi omoguฤ‡ile pristup podacima:

  • Prikljuฤak: Uspostavlja vezu izmeฤ‘u .NET aplikacije i izvora podataka.
  • Naredba: Izvrลกava SQL upite, pohranjene procedure i ostale naredbe.
  • ฤŒitaฤ podataka: Omoguฤ‡uje brzo, samo za ฤitanje i unaprijedno dohvaฤ‡anje podataka pomoฤ‡u povezanog modela.
  • Adapter podataka: Djeluje kao most izmeฤ‘u izvora podataka i skupa podataka za nepovezani pristup podacima.
  • Skup podataka: Prikaz podataka u memoriji, sposoban za pohranu viลกe tablica i informacija o shemi.
  • TablicaPodataka / RedPodataka / StupacPodataka: Predstavlja strukturu tablice i podatke unutar DataSeta.

3) Objasnite razliku izmeฤ‘u povezanog i nepovezanog pristupa podacima.

ADO.NET podrลพava dva razliฤita modela:

  • Povezani model:
    • Koristi predmete poput Veza i ฤitaฤ podataka.
    • Aplikacija mora odrลพavati otvorenu vezu s bazom podataka tijekom dohvaฤ‡anja podataka.
    • Idealno za operacije u stvarnom vremenu, samo za ฤitanje, gdje je potrebna neposredna interakcija s bazom podataka.
  • Odspojeni model:
    • koristi Adapter podataka i skup podataka.
    • Podaci se uฤitavaju u memoriju i veza s bazom podataka se moลพe zatvoriti.
    • Omoguฤ‡uje manipulaciju podacima izvan mreลพe i kasnije usklaฤ‘ivanje s bazom podataka. Ovaj pristup poboljลกava skalabilnost i smanjuje optereฤ‡enje posluลพitelja baze podataka.

4) Koja je razlika izmeฤ‘u DataReadera i DataSeta?

Aspekt DataReader Skup podataka
prikljuฤak Zahtijeva otvorenu vezu s bazom podataka Radovi su iskljuฤeni
Pristup podacima Samo naprijed, samo za ฤitanje Podrลพava manipulaciju u memoriji
Izvoฤ‘enje High speed Niลพe od DataReadera zbog optereฤ‡enja memorije
Koristite sluฤaj Brzo dohvaฤ‡anje velikih rezultata Sloลพene operacije s podacima i rad izvan mreลพe

A DataReader je uฤinkovit i lagan, idealan za brzo ฤitanje podataka. A Skup podatakaS druge strane, koristan je kada trebate raditi s viลกe tablica, odnosa i operacija s podacima u memoriji.


5) ล to je veza Pooling u ADO.NET-u?

prikljuฤak Pooling je znaฤajka performansi koja ponovno koristi otvorene veze s bazom podataka umjesto ponovljenog otvaranja i zatvaranja veza. Kada se veza zatvori, vraฤ‡a se u skup koji odrลพava ADO.NET. Naknadni zahtjevi koriste postojeฤ‡u vezu iz skupa, ลกto uvelike smanjuje optereฤ‡enje stvaranja veza i poboljลกava performanse u okruลพenjima s velikim optereฤ‡enjem.


6) ล to su pruลพatelji podataka u ADO.NET-u?

Pruลพatelji podataka su klase koje omoguฤ‡iti komunikaciju izmeฤ‘u vaลกe aplikacije i odreฤ‘enih vrsta izvora podatakaNajฤeลกฤ‡e koriลกteni pruลพatelji podataka u ADO.NET-u ukljuฤuju:

  • SQL klijent: Za Microsoft SQL Server.
  • OleDb: Za baze podataka dostupne putem OLE DB-a (npr. MS Access).
  • ODBC: Za baze podataka putem ODBC upravljaฤkih programa.
  • OracleKlijent: Za Oracle baze podataka (zastarjelo u novijim .NET verzijama). Ovi pruลพatelji usluga ukljuฤuju vlastite klase Connection, Command, DataReader i DataAdapter, svaka optimizirana za odgovarajuฤ‡i izvor.

7) Kako se izvrลกavaju SQL naredbe u ADO.NET-u?

U ADO.NET-u, SQL naredbe se izvrลกavaju pomoฤ‡u Objekt naredbeOvisno o vrsti operacije koju ลพelite izvrลกiti, koristite razliฤite metode izvrลกavanja:

  • IzvrลกiฤŒitaฤ(): Za SELECT upite koji vraฤ‡aju skupove rezultata.
  • IzvrลกiNeUpit(): Za INSERT, UPDATE, DELETE (vraฤ‡a broj pogoฤ‘enih redaka).
  • IzvrลกiSkalar(): Za upite koji vraฤ‡aju jednu vrijednost (npr. COUNT).
  • IzvrลกiXmlReader(): Za upite koji vraฤ‡aju XML podatke. Koriลกtenje odgovarajuฤ‡e metode izvrลกavanja osigurava optimalne performanse i ispravnu obradu rezultata.

8) Koja je svrha objekta Command?

The Objekt naredbe u ADO.NET-u je odgovoran za izvrลกavanje SQL naredbi ili pohranjenih procedura prema bazi podataka. Koristi uspostavljenu vezu i izvrลกava naredbe poput dohvaฤ‡anja podataka, mijenjanja zapisa ili izvoฤ‘enja sloลพenih operacija pomoฤ‡u pohranjenih procedura. Objekt Command moลพe se konfigurirati s parametrima za podrลกku sigurnim upitima i izbjegavanje SQL injekcije.


9) ล to su parametrizirani upiti i zaลกto su vaลพni?

A parametrizirani upit je SQL naredba gdje rezervirana mjesta (parametri) koriste se umjesto izravnog kodiranja vrijednosti u SQL niz. Ovaj pristup:

  • spreฤava SQL Injection tretiranjem korisniฤkog unosa kao podataka, a ne izvrลกnog koda.
  • Poboljลกava ponovna upotreba i odrลพavanje SQL naredbi.

U objektu Command, parametri se dodaju zasebno, ลกto osigurava sigurnije i uฤinkovitije izvrลกavanje.


10) Kako transakcije funkcioniraju u ADO.NET-u?

Transakcija u ADO.NET-u osigurava da skup operacija se izvrลกava kao jedna cjelinaTransakciju pokreฤ‡ete pomoฤ‡u objekta Connection, izvrลกavate viลกe naredbi unutar njega, a zatim bilo poฤiniti (spremi sve promjene) ili povrat na staro (poniลกtavanje promjena) na temelju uspjeha ili neuspjeha. To jamฤi integritet podataka, posebno u scenarijima poput prijenosa sredstava, gdje djelomiฤna aลพuriranja mogu dovesti do nekonzistentnih stanja.


11) Koja je uloga DataAdaptera u ADO.NET-u?

A Adapter podataka djeluje kao a most izmeฤ‘u skupa podataka i izvora podataka, Koristi Objekti naredbi (Odaberi, Umetni, Aลพuriraj, Izbriลกi) za dohvaฤ‡anje podataka iz baze podataka u DataSet i za sinkronizaciju promjena natrag u bazu podataka. DataAdapter automatski upravlja otvaranjem i zatvaranjem veze prilikom popunjavanja ili aลพuriranja podataka.

Glavne metode ukljuฤuju:

  • Ispuni() โ€“ Popunjava DataSet podacima iz izvora podataka.
  • Aลพurirati() โ€“ ล alje promjene iz DataSeta natrag u bazu podataka.

Ovaj pristup je kljuฤan za ADO.NET nepovezana arhitektura, ลกto omoguฤ‡uje aplikacijama manipuliranje podacima izvan mreลพe i kasnije uฤinkovito pohranjivanje promjena.


12) Objasnite razliku izmeฤ‘u ExecuteReader(), ExecuteScalar() i ExecuteNonQuery().

The Objekt naredbe U ADO.NET-u su predstavljene tri kljuฤne metode za izvrลกavanje SQL naredbi:

naฤin Povratak Tipiฤna upotreba Primjer
IzvrลกiฤŒitaฤ() DataReader SELECT izjave ฤŒitanje zapisa
IzvrลกiSkalar() Jedna vrijednost Agregirani upiti (COUNT, SUM) Dohvaฤ‡anje redaka s ukupnim brojem
IzvrลกiNeUpit() Cijeli broj (zahvaฤ‡eni retci) UMETNI, AลฝURIRAJ, IZBRIล I Izmjena podataka

Primjer:

SqlCommand cmd = new SqlCommand("SELECT COUNT(*) FROM Employees", con);
int count = (int)cmd.ExecuteScalar();

Ovdje, IzvrลกiSkalar() uฤinkovito dohvaฤ‡a jednu vrijednost bez uฤitavanja punih skupova podataka, poboljลกavajuฤ‡i performanse.


13) ฤŒemu sluลพi klasa DataView u ADO.NET-u?

The DataView klasa pruลพa a prilagoฤ‘eni, dinamiฤki prikaz podataka unutar DataTable-aOmoguฤ‡uje programerima da sortiranje, filtriranje ili pretraลพivanje podataka bez mijenjanja temeljne tablice. DataView je koristan za prikaz filtriranih podataka u UI komponentama kao ลกto su DataGridView ili ListView.

Na primjer:

DataView view = new DataView(dataTable);
view.RowFilter = "Department = 'IT'";
view.Sort = "EmployeeName ASC";

Filtrirani prikaz se zatim moลพe izravno vezati za elemente korisniฤkog suฤelja, poboljลกavajuฤ‡i performanse izbjegavanjem viลกestrukih poziva bazi podataka.


14) Koje su kljuฤne razlike izmeฤ‘u ADO-a i ADO.NET-a?

svojstvo TEล KOฤ†A ADO.NET
Architektura povezan Povezano i nepovezano
Pohranu podataka Skup zapisa Skup podataka (baziran na XML-u)
skalabilnost Nizak visok
XML podrลกka ograniฤen Full
Pristup podacima COM-bazirano Upravljani kod (.NET)

Objaลกnjenje: ADO.NET pruลพa bogatiji, skalabilniji i XML-integrirani model nego tradicionalni ADO. Optimiziran je za distribuirane i web-bazirane aplikacije, podrลพavajuฤ‡i nepovezane operacije s podacima i XML serijalizaciju za interoperabilnost.


15) Kako ADO.NET rjeลกava probleme konkurentnosti?

Konflikti istodobnosti nastaju kada viลกe korisnika istovremeno mijenja iste podatke. ADO.NET pruลพa viลกe strategije za upravljanje konkurentnoลกฤ‡u:

  1. Optimistiฤna istodobnost: Podaci se smatraju nepromijenjenima do aลพuriranja. DataAdapter provjerava izvorne vrijednosti prije slanja aลพuriranja.
  2. Pesimistiฤna istodobnost: Podaci se zakljuฤavaju prilikom ฤitanja ili izmjene, ลกto sprjeฤava istovremeni pristup.

U veฤ‡ini stvarnih .NET aplikacija, optimistiฤna konkurentnost preferira se zbog svojih performansi i skalabilnosti.


16) Koji je znaฤaj DataRelation-a u ADO.NET-u?

The Relacija podataka objekt definira odnos roditelj-dijete izmeฤ‘u dvije tablice podataka unutar DataSeta. Omoguฤ‡uje navigaciju izmeฤ‘u povezanih zapisa, sliฤno ograniฤenjima vanjskog kljuฤa baze podataka.

Primjer:

DataRelation rel = new DataRelation("DeptEmp",
    ds.Tables["Department"].Columns["DeptID"],
    ds.Tables["Employee"].Columns["DeptID"]);
ds.Relations.Add(rel);

To omoguฤ‡uje hijerarhijski prolaz podataka pomoฤ‡u DohvatiRedovePodreฤ‘enih() i DohvatiRodnik(), ลกto ga ฤini moฤ‡nim za predstavljanje relacijskih struktura u memoriji.


17) Koja je razlika izmeฤ‘u SqlCommand i SqlDataAdapter?

svojstvo SqlCommand SqlDataAdapter
Svrha Izvrลกava jednu SQL naredbu Djeluje kao most izmeฤ‘u DataSeta i baze podataka
prikljuฤak Zahtijeva otvorenu vezu Automatski upravlja vezom
Model podataka povezan rastavljen
Upotreba Naredbe u stvarnom vremenu Izvanmreลพna aลพuriranja i sinkronizacija

Primjer: Koristiti SqlCommand prilikom izvoฤ‘enja izravnih upita (npr. INSERT, SELECT). Koristite SqlDataAdapter za nepovezane operacije poput popunjavanja i aลพuriranja skupova podataka.


18) Koje su razliฤite vrste naredbi u ADO.NET-u?

ADO.NET podrลพava sljedeฤ‡e Vrsta naredbe vrijednosti:

  1. Tekst: Zadani tip za sirove SQL upite.
  2. Pohranjena procedura: Izvrลกava unaprijed definirane pohranjene procedure.
  3. TableDirect: Dohvaฤ‡a sve retke iz odreฤ‘ene tablice (za OLE DB pruลพatelje usluga).

Koriลกtenje pohranjenih procedura poboljลกava sigurnost i performanse, dok Tekst idealan je za dinamiฤke upite.


19) ล to je skup podataka (DataSet) i koja su njegova glavna svojstva?

A Skup podataka je prikaz podataka u memoriji sastoji se od viลกe tablica, relacija i ograniฤenja. Podrลพava nepovezani pristup i pohranu podataka temeljenu na XML-u.

Kljuฤna svojstva:

  • tablice: Kolekcija objekata DataTable.
  • Odnosi: Odnosi izmeฤ‘u tablica.
  • Ograniฤenja: Odrลพavajte integritet podataka (npr. UniqueConstraint, ForeignKeyConstraint).
  • ImaPromjene: Oznaฤava jesu li podaci izmijenjeni.

Skup podataka omoguฤ‡uje operacije s velikim koliฤinama podataka i manipulaciju izvan mreลพe, ลกto ga ฤini idealnim za distribuirane aplikacije.


20) Objasnite razliku izmeฤ‘u metoda Fill() i Update() u ADO.NET-u.

naฤin Svrha Zahtjev za povezivanje
Ispuni() Popunjava DataSet podacima iz izvora podataka Automatski otvara i zatvara vezu
Aลพurirati() ล alje modificirane podatke DataSeta natrag u bazu podataka Automatski otvara i zatvara vezu

Objaลกnjenje:

  • Ispuni(): ฤŒita podatke iz izvora u tablice DataSet pomoฤ‡u SelectCommand.
  • Aลพurirati(): Primjenjuje promjene INSERT, UPDATE ili DELETE u DataSetu natrag u bazu podataka. Ove dvije metode zajedno tvore jezgra nepovezanih operacija s podacima u ADO.NET-u.

21) Koja je uloga objekta Connection u ADO.NET-u?

The Objekt povezivanja uspostavlja a veza izmeฤ‘u aplikacije i izvora podatakaPruลพa metode i svojstva za otvoriti, zatvoriti i upravljati povezivost s bazom podataka. Tipiฤan objekt povezivanja varira ovisno o pruลพatelju usluga - na primjer, SQLConnection za SQL Server i OleDbConnection za OLE DB izvore.

Kljuฤna svojstva:

  • ConnectionString โ€“ Definira vjerodajnice i konfiguraciju baze podataka.
  • Drลพava โ€“ Oznaฤava je li veza otvorena ili zatvorena.
  • PoฤetakTransakcije() โ€“ Pokreฤ‡e transakciju s bazom podataka.

Primjer:

SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=TestDB;Integrated Security=True");
con.Open();
// Operations
con.Close();

Uฤinkovito upravljanje vezama kljuฤno je za performanse, posebno u aplikacijama s velikim prometom.


22) Kako se na primjeru rjeลกavaju transakcije u ADO.NET-u?

Transakcija osigurava valentnost โ€” sve operacije ili uspijevaju ili ne uspijevaju zajedno. ADO.NET pruลพa SQLTransakcija razred za ovo.

Primjer:

SqlConnection con = new SqlConnection(connString);
con.Open();
SqlTransaction tran = con.BeginTransaction();

try
{
    SqlCommand cmd1 = new SqlCommand("INSERT INTO Accounts VALUES(1,1000)", con, tran);
    SqlCommand cmd2 = new SqlCommand("UPDATE Accounts SET Balance = Balance - 500 WHERE ID = 1", con, tran);
    cmd1.ExecuteNonQuery();
    cmd2.ExecuteNonQuery();
    tran.Commit(); // commit if all succeed
}
catch
{
    tran.Rollback(); // rollback on error
}
finally
{
    con.Close();
}

To osigurava dosljednost podataka u sluฤaju pogreลกaka ili iznimaka tijekom izvoฤ‘enja.


23) Koje su prednosti koriลกtenja pohranjenih procedura s ADO.NET-om?

Pohranjene procedure nude viลกe prednosti u odnosu na inline SQL upite:

Prednost Description
Izvoฤ‘enje Unaprijed kompilira i pohranjuje u predmemoriju na posluลพitelju, smanjujuฤ‡i vrijeme izvrลกavanja.
Sigurnost ล titi od SQL injekcije koriลกtenjem parametara.
sposobnost snabdijevanja Poslovna logika se nalazi u bazi podataka radi lakลกeg aลพuriranja.
Reus Sposobnost Moลพe se pozvati iz viลกe aplikacija ili modula.

Primjer:

SqlCommand cmd = new SqlCommand("sp_GetEmployeeDetails", con);
cmd.CommandType = CommandType.StoredProcedure;

Dakle, kombiniranje ADO.NET-a s pohranjenim procedurama dovodi do uฤinkovitog i sigurnog rada s bazom podataka.


24) Koja je razlika izmeฤ‘u Dataset.AcceptChanges() i DataAdapter.Update()?

svojstvo PrihvatiPromjene() DataAdapter.Update()
OperaANJE Lokalno potvrฤ‘uje promjene u DataSetu Sprema promjene u bazu podataka
Interakcija s bazom podataka Ne Da
Posljedica Oznaฤava sve retke kao "Nepromijenjene" Izvrลกava SQL naredbe (Umetanje, Aลพuriranje, Brisanje)

Objaลกnjenje: zvanje PrihvatiPromjene() aลพurira samo interno stanje DataSeta bez pohranjivanja u bazu podataka. Za trajno pohranjivanje promjena, Aลพurirati() mora se koristiti. U praksi, programeri prvo koriste Aลพurirati() za spremanje podataka, a zatim PrihvatiPromjene() za lokalno finaliziranje promjena.


25) Kako moลพete raditi s XML podacima u ADO.NET-u?

ADO.NET pruลพa besprijekorno integracija s XML-om za pohranu, razmjenu i transformaciju podataka.

Kljuฤne metode:

  • WriteXml() โ€“ Zapisuje sadrลพaj DataSeta u XML datoteku.
  • ReadXml() โ€“ ฤŒita podatke iz XML datoteke u DataSet.
  • GetXml() โ€“ Vraฤ‡a XML prikaz DataSeta kao niz znakova.
  • DohvatiXmlSchemu() โ€“ Vraฤ‡a shemu u XML formatu.

Primjer:

dataSet.WriteXml("Employees.xml");

Ova znaฤajka omoguฤ‡uje jednostavno dijeljenje podataka izmeฤ‘u heterogenih sustava koristeฤ‡i XML kao meฤ‘uformat.


26) Koja je svrha objekata DataColumn i DataRow u ADO.NET-u?

U ADO.NET-u, Stupac podataka i Redak podataka formiraju graฤ‘evne blokove tablica podataka u memoriji:

  • Stupac podataka: Definira shemu - naziv, tip podataka, ograniฤenja i zadane vrijednosti.
  • Redak podataka: Predstavlja stvarni zapis (redak) podataka u DataTable-u.

Primjer:

DataColumn col = new DataColumn("EmployeeID", typeof(int));
dataTable.Columns.Add(col);
DataRow row = dataTable.NewRow();
row["EmployeeID"] = 101;
dataTable.Rows.Add(row);

Zajedno omoguฤ‡uju strukturiranu manipulaciju podacima u nepovezanom okruลพenju.


27) Kako ADO.NET podrลพava validaciju podataka i ograniฤenja?

ADO.NET osigurava integritet podataka putem ograniฤenja na razinama DataSet i DataTable:

Ograniฤenje Svrha
JedinstvenoOgraniฤenje Osigurava da su vrijednosti stupaca jedinstvene.
Ograniฤenje vanjskog kljuฤa Odrลพava referencijalni integritet izmeฤ‘u povezanih tablica.
Svojstvo DefaultValue Definira zadane vrijednosti stupaca.

Primjer:

UniqueConstraint uc = new UniqueConstraint(ds.Tables["Employee"].Columns["EmpID"]);
ds.Tables["Employee"].Constraints.Add(uc);

Ova ograniฤenja repliciraju pravila na razini baze podataka u memoriji, osiguravajuฤ‡i ฤiste i konzistentne podatke prije sinkronizacije.


28) Koja je razlika izmeฤ‘u OLE DB i ODBC pruลพatelja usluga u ADO.NET-u?

Davatelj Svrha Prostor
OLE DB (.NET Framework pruลพatelj podataka za OLE DB) Koristi se za MS Access i druge OLE DB-kompatibilne baze podataka System.Data.OleDb
ODBC (.NET Framework pruลพatelj podataka za ODBC) Koristi se za baze podataka s ODBC upravljaฤkim programima kao ลกto su MySQL System.Data.Odbc

Objaลกnjenje:

  • NEMA DB obiฤno je brลพi s Microsoft tehnologije.
  • ODBC pruลพa ลกiru kompatibilnost na razliฤitim platformama baza podataka.

29) Kako poboljลกavate performanse u ADO.NET aplikacijama?

Podeลกavanje performansi u ADO.NET-u ukljuฤuje optimizaciju pristupa bazi podataka i obrade u memoriji:

Najbolje prakse:

  1. Koristiti prikljuฤak Pooling i uvijek brzo prekidajte veze.
  2. preferiraju DataReader za podatke samo za ฤitanje.
  3. Koristiti parametrizirani upiti umjesto dinamiฤkog SQL-a.
  4. Minimizirajte prijenos podataka pomoฤ‡u ODABERI odreฤ‘ene stupce.
  5. Moฤ‡ pohranjene procedure za sloลพenu logiku.
  6. Podaci iz predmemorije gdje je to primjenjivo pomoฤ‡u Predmemoriranje skupa podataka.
  7. Pravilno odloลพite predmete s using blokovi.

Ove mjere poboljลกavaju skalabilnost, smanjuju latenciju i smanjuju optereฤ‡enje baze podataka.


30) Koje su glavne razlike izmeฤ‘u DataTable i DataSet?

Aspekt DataTable Skup podataka
Struktura Jedan stol Kolekcija viลกe DataTables
Odnosi Nije podrลพano Podrลพava odnose izmeฤ‘u tablica
ograniฤenja ograniฤen Podrลพava ograniฤenja jedinstvenog i stranog kljuฤa
XML Operama Djelomiฤna Potpuna podrลกka za ฤitanje/pisanje XML-a
Koristite sluฤaj Jednostavne operacije s podacima Sloลพene strukture podataka i manipulacija izvan mreลพe

Objaลกnjenje: A DataTable idealan je za prikaz podataka u jednoj tablici, dok je Skup podataka koristi se za sloลพene scenarije s viลกe tablica s odnosima i ograniฤenjima. Oba podrลพavaju nepovezano rukovanje podacima, ali se razlikuju po veliฤini i opsegu.


31) ฤŒemu sluลพi asinhrono programiranje u ADO.NET-u?

Asinkrono programiranje u ADO.NET-u omoguฤ‡uje neblokirajuฤ‡e operacije baze podataka, poboljลกavajuฤ‡i responzivnost aplikacije, posebno u web i UI sustavima. Omoguฤ‡uje vaลกoj aplikaciji obavljanje drugih zadataka dok ฤeka dovrลกetak operacija baze podataka.

ADO.NET nudi asinhrone metode kao ลกto su:

  • OpenAsync() โ€“ Asinkrono otvara vezu.
  • IzvrลกiReaderAsync() โ€“ Izvrลกava naredbu i asinkrono dohvaฤ‡a rezultate.
  • IzvrลกiNeUpitAsinkrono() โ€“ Asinkrono izvrลกava SQL naredbe.
  • IzvrลกiSkalarAsinkronost() โ€“ Asinkrono vraฤ‡a jednu vrijednost.

Primjer:

await connection.OpenAsync();
await command.ExecuteReaderAsync();

Prednosti: Poboljลกana skalabilnost, bolje korisniฤko iskustvo i uฤinkovito koriลกtenje resursa u aplikacijama s puno ulazno/izlaznih operacija.


32) Koja je razlika izmeฤ‘u DataReadera i DataAdaptera u smislu performansi i koriลกtenja?

Aspekt DataReader Adapter podataka
prikljuฤak povezan rastavljen
Izvoฤ‘enje Brลพe (streaming) Sporije (u memoriji)
Pristup podacima Samo za ฤitanje, samo za prosljeฤ‘ivanje Ureฤ‘ivati, sluฤajni pristup
Memorija Obiฤaj Nizak Viลกa (pohranjuje podatke u memoriju)
Koristite sluฤaj Brzo prikazivanje podataka Ureฤ‘ivanje i sinkronizacija izvan mreลพe

Objaลกnjenje: Za prikaz podataka u stvarnom vremenu, Koristite DataReader. Forum manipulacija podacima izvan mreลพe, Koristite Adapter podatakaDataReader je idealan za skalabilnost, dok DataAdapter odgovara bogatim aplikacijama voฤ‘enim podacima.


33) Kako se ADO.NET integrira s LINQ-om?

LINQ (Language Integrated Query) pruลพa moderan naฤin za upiti ADO.NET strukturama podataka kao ลกto su DataSet i DataTable koriลกtenjem C# sintakse umjesto SQL-a.

Primjer:

var result = from emp in dataSet.Tables["Employee"].AsEnumerable()
             where emp.Field<string>("Department") == "HR"
             select emp;

Prednosti:

  • Sigurnost tipova prilikom kompajliranja.
  • Nema potrebe za SQL stringovima u kodu.
  • Lakลกe otklanjanje pogreลกaka i odrลพavanje.

LINQ-to-DataSet izraฤ‘uje ADO.NET upite ฤitljiviji, odrลพiviji i uฤinkovitiji.


34) ฤŒemu sluลพi DataTableReader u ADO.NET-u?

A ฤŒitaฤ tablica podataka osigurava samo naprijed, samo za ฤitanje pristup jednoj ili viลกe DataTables u DataSetu. Funkcionira kao DataReader, ali za podatke u memoriji.

Primjer:

DataTableReader reader = dataSet.CreateDataReader();
while (reader.Read())
{
    Console.WriteLine(reader["EmployeeName"]);
}

Ovaj pristup omoguฤ‡uje brzo kretanje kroz podatke u memoriji, a pritom nepovezani model ostaje netaknut.


35) Kako moลพete pozvati pohranjenu proceduru koja ima parametre koristeฤ‡i ADO.NET?

Moลพete koristiti SqlCommand objekt s parametrima za sigurno pozivanje pohranjenih procedura.

Primjer:

SqlCommand cmd = new SqlCommand("sp_GetEmployeeByID", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@EmpID", 101);
SqlDataReader dr = cmd.ExecuteReader();

Ovaj pristup sprjeฤava SQL Injection, pruลพa vrsta sigurnosti, i omoguฤ‡uje rukovanje ulazno/izlaznim parametrima u poslovnim aplikacijama.


36) Koje su prednosti i nedostaci koriลกtenja DataSeta u ADO.NET-u?

Prednosti Nedostaci
Radi u iskljuฤenom naฤinu rada Troลกi viลกe memorije
Moลพe pohraniti viลกe tablica Sporije od DataReadera
Podrลพava odnose i ograniฤenja Nije idealno za velike skupove podataka
Podrลกka za XML integraciju Dodatni troลกkovi serijalizacije

Saลพetak: Skupovi podataka idealni su za sloลพene, offline operacije ili pri radu s XML/web servisima. Za visokouฤinkovite aplikacije ili aplikacije u stvarnom vremenu, preferirajte DataReader or Adapter podataka za uฤinkovitost.


37) Kako moลพete rijeลกiti pogreลกke u ADO.NET operacijama?

Obrada greลกaka se vrลกi pomoฤ‡u pokuลกaj-uhvati-napokon blokovi i SqlException klase.

Primjer:

try
{
    connection.Open();
    SqlCommand cmd = new SqlCommand("SELECT * FROM NonExistingTable", connection);
    cmd.ExecuteReader();
}
catch (SqlException ex)
{
    Console.WriteLine("Error: " + ex.Message);
}
finally
{
    connection.Close();
}

Najbolje prakse:

  • Zabiljeลพite SQL iznimke pomoฤ‡u strukturiranog zapisivanja (npr. Serilog, NLog).
  • Koristiti finally or using blokovi kako bi se osiguralo zatvaranje veza.
  • Izbjegavajte otkrivanje osjetljivih poruka o pogreลกkama u produkciji.

38) Koja je uloga CommandBuildera u ADO.NET-u?

The CommandBuilder automatski generira SQL naredbe (INSERT, UPDATE, DELETE) za DataAdapter na temelju njegove SELECT naredbe. To eliminira potrebu za ruฤnim pisanjem upita za aลพuriranje.

Primjer:

SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM Employees", con);
SqlCommandBuilder builder = new SqlCommandBuilder(da);
da.Update(dataSet, "Employees");

Korisno je za brzi razvoj, ali se ne preporuฤuje za sloลพeni upiti ili spajanja, gdje ruฤno napisane naredbe pruลพaju veฤ‡u kontrolu.


39) Kako implementirati grupiranje veza u ADO.NET-u?

Povezivanje veza ponovno koristi postojeฤ‡e veze s bazom podataka umjesto stvaranja novih za svaki zahtjev, poboljลกavajuฤ‡i performanse.

Primjer niza za povezivanje:

"Data Source=.;Initial Catalog=TestDB;Integrated Security=True;Pooling=True;Min Pool Size=5;Max Pool Size=100;"

Radna:

  • Kada se veza zatvori, ona se vraฤ‡a u skup umjesto da bude uniลกtena.
  • ADO.NET dohvaฤ‡a zdruลพene veze za sljedeฤ‡e zahtjeve.

Prednosti:

  • Smanjuje optereฤ‡enje veze.
  • Poboljลกava skalabilnost pod velikim optereฤ‡enjem.
  • Automatski upravlja .NET runtime.

40) Koje su glavne razlike izmeฤ‘u ExecuteReader(), ExecuteScalar() i ExecuteNonQuery()?

naฤin Tip povrata Koristite sluฤaj Primjer upita
IzvrลกiฤŒitaฤ() DataReader Dohvati viลกe redaka SELECT * FROM Zaposlenici
IzvrลกiSkalar() Jedna vrijednost Agregatne funkcije ODABERI BROJ(*) IZ ZAPOSLENIKA
IzvrลกiNeUpit() Cijeli broj (zahvaฤ‡eni retci) DML izjave AลฝURIRANJE Zaposlenici POSTAVLJENA Plaฤ‡a=5000

Primjer:

SqlCommand cmd = new SqlCommand("SELECT COUNT(*) FROM Employees", con);
int total = (int)cmd.ExecuteScalar();

Svaka metoda sluลพi odreฤ‘enoj svrsi: IzvrลกiฤŒitaฤ() za ฤitanje podataka, IzvrลกiSkalar() za brze pretrage i IzvrลกiNeUpit() za izmjene.


41) Koja je razlika izmeฤ‘u ExecuteXmlReader() i ExecuteReader()?

Obje metode se koriste za ฤitanje podataka iz baze podataka, ali se razlikuju po izlazni format i namjena.

Aspekt IzvrลกiฤŒitaฤ() IzvrลกiXmlReader()
Povratak Objekt DataReader XML podaci kao XmlReader
Tip podataka tabliฤast XML dokument
Upotreba ฤŒitanje strukturiranih redaka Dohvaฤ‡anje podataka u XML formatu
Izvoฤ‘enje Brลพe za relacijske podatke Korisno za XML-bazirane aplikacije

Primjer:

SqlCommand cmd = new SqlCommand("SELECT * FROM Employees FOR XML AUTO", con);
XmlReader xmlReader = cmd.ExecuteXmlReader();

IzvrลกiXmlReader() se uglavnom koristi pri integraciji .NET-a s web servisima, REST API-jima ili XML pohranama podataka.


42) Kako upravljate viลกestrukim skupovima rezultata pomoฤ‡u ADO.NET-a?

ADO.NET-ovi SqlDataReader podrลพava viลกe skupova rezultata pomoฤ‡u Sljedeฤ‡iRezultat() metoda. To vam omoguฤ‡uje obradu viลกe upita izvrลกenih u jednoj naredbi.

Primjer:

SqlCommand cmd = new SqlCommand("SELECT * FROM Employees; SELECT * FROM Departments;", con);
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
    Console.WriteLine(dr["EmployeeName"]);
}
dr.NextResult(); // Move to next table
while (dr.Read())
{
    Console.WriteLine(dr["DepartmentName"]);
}

Ovaj pristup je uฤinkovit pri dohvaฤ‡anju povezanih podataka u jednom krugu do baze podataka, smanjujuฤ‡i latenciju.


43) U kojim scenarijima iz stvarnog svijeta se ADO.NET preferira u odnosu na Entity Framework?

Iako Entity Framework (EF) moderan i ORM-baziran, ADO.NET ostaje relevantan zbog svog performanse, kontrola i jednostavnost u odreฤ‘enim sluฤajevima upotrebe:

  1. Visokouฤinkoviti slojevi za pristup podacima (bankarstvo, trgovaฤki sustavi).
  2. Lagane aplikacije gdje potpuni ORM optereฤ‡enji nisu potrebni.
  3. Grupna obrada ili operacije s velikim brojem podataka.
  4. Integracija naslijeฤ‘enog sustava s pohranjenim procedurama.
  5. Finozrna kontrola preko SQL-a i ลพivotnog ciklusa veze.

Ukratko:

Koristite ADO.NET kada Trebate brzinu, kontrolu i ruฤnu optimizacijui EF kada brzi razvoj i apstrakcija su prioritet.


44) Koja je razlika izmeฤ‘u ADO.NET Entity Data Modela i tradicionalnog ADO.NET-a?

Aspekt ADO.NET Model podataka o entitetu (EDM)
Pristup Pristup podacima niske razine ORM (objektno-relacijsko mapiranje)
Jezik upita SQL naredbe LINQ / Entity SQL
Izvoฤ‘enje Brลพa, ruฤna optimizacija Sporije, dodatni troลกkovi apstrakcije
Zastupanje podataka Tablice i retci Entiteti i odnosi
Razvojni napor visok Spustite

Saลพetak: The Model podataka entiteta automatizira mapiranje objekata u tablicu i prevoฤ‘enje upita, dok ADO.NET daje programerima potpunu kontrolu po cijenu viลกe ruฤnog kodiranja.


45) Kako osigurati pristup bazi podataka u ADO.NET aplikacijama?

Sigurnost u ADO.NET-u se vrti oko zaลกtita nizova za povezivanje, sprjeฤavanje SQL injekcije i osiguravanje pristupa s najmanjim privilegijama.

Najbolje prakse:

  1. Koristite parametrizirane upite โ€” Izbjegavajte spajanje SQL nizova.
  2. ล ifriraj nizove za povezivanje in web.config pomoฤ‡u: aspnet_regiis -pef "connectionStrings" "C:\AppFolder"
  3. Koristiti Windows Ovjera umjesto SQL autentifikacije gdje je to moguฤ‡e.
  4. Izbjegavajte pohranjivanje vjerodajnica u obiฤnom tekstu.
  5. Validiraj sve korisniฤke unose prije izvrลกavanja baze podataka.

Primjer (Sigurna naredba):

cmd.Parameters.Add("@EmpID", SqlDbType.Int).Value = empId;

Ove mjere znaฤajno smanjuju rizik od SQL injekcije i izlaganja vjerodajnica.


46) Kako moลพete uฤinkovito izvoditi operacije skupnog umetanja u ADO.NET-u?

Za unos velikih koliฤina podataka, SqlBulkCopy pruลพa najbrลพu metodu u ADO.NET-u.

Primjer:

using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connection))
{
    bulkCopy.DestinationTableName = "Employees";
    bulkCopy.WriteToServer(dataTable);
}

Prednosti:

  • Brzo ubacuje tisuฤ‡e zapisa.
  • Idealno za ETL (Ekstrakcija, Transformacija, Uฤitavanje) scenarije.
  • Smanjuje kruลพna putovanja izmeฤ‘u aplikacije i baze podataka.

Biljeลกka: SqlBulkCopy najbolje funkcionira za SQL Server i zahtijeva odgovarajuฤ‡e usklaฤ‘ivanje shema tablice.


47) Koja je razlika izmeฤ‘u metoda FillSchema() i Fill() u DataAdapteru?

naฤin Svrha Uฤinak na shemu
Ispuni() Uฤitava samo podatke Ne dohvaฤ‡a shemu
FillSchema() Uฤitava podatke + shemu Dohvaฤ‡a definicije stupaca, tipove podataka, ograniฤenja

Primjer:

dataAdapter.FillSchema(dataSet, SchemaType.Source);

Koristiti FillSchema() kada je prije manipuliranja ili povezivanja podataka potrebna struktura tablice (stupci, tipovi podataka).


48) Koje su najbolje prakse za koriลกtenje objekata SqlConnection i SqlCommand?

  1. Koristiti using izvjeลกtaji kako bi se osiguralo pravilno odlaganje:
  2. using (SqlConnection con = new SqlConnection(connString))
    {
        con.Open();
        // operations
    }
    
  3. Izbjegavajte drลพanje veza otvorenima dulje nego ลกto je potrebno.
  4. Koristite skupljanje veza (omoguฤ‡eno prema zadanim postavkama).
  5. Ponovno upotrijebite SqlCommand objekte za sliฤne operacije s parametrima.
  6. Graciozno rukovanje iznimkama koriลกtenjem try-catch-finally metode.
  7. Izbjegavajte SELECT *; eksplicitno navedite stupce.

Pridrลพavanje ovih praksi osigurava visoke performanse i robusno upravljanje resursima.


49) Kako moลพete otkriti i rijeลกiti zastoje u ADO.NET-u?

A zastoj dogaฤ‘a se kada dvije ili viลกe transakcija blokiraju jedna drugu. U ADO.NET-u to obiฤno rezultira SqlException sa Broj pogreลกke 1205.

Strategija rukovanja:

  1. Uhvatite iznimku i ponovno pokuลกajte transakciju.
  2. Zadrลพi transakcije kratko i uฤinkovito.
  3. Pristup tablicama u dosljedan redoslijed preko transakcija.
  4. Koristite odgovarajuฤ‡e razine izolacije transakcija poput ReadCommitted.
  5. Nadgledajte zastoje pomoฤ‡u SQL Profiler ili proลกireni dogaฤ‘aji.

Primjer (logika ponovnog pokuลกaja):

int retryCount = 3;
while (retryCount-- > 0)
{
    try
    {
        // Transaction logic
        break;
    }
    catch (SqlException ex) when (ex.Number == 1205)
    {
        Thread.Sleep(2000); // retry delay
    }
}

50) Koje su prednosti i nedostaci koriลกtenja ADO.NET-a u odnosu na druge tehnologije pristupa podacima?

Prednosti Nedostaci
Visoke performanse i fina kontrola Zahtijeva viลกe standardnog koda
Podrลพava povezane i nepovezane modele Nema ugraฤ‘enog ORM mapiranja
Radi s viลกe izvora podataka Ruฤno odrลพavanje SQL-a
Potpuna integracija XML-a i skupa podataka Sklonije greลกkama za poฤetnike
Lagan i bez ovisnosti Teลพe skaliranje sa sloลพenim modelima domena

Saลพetak: ADO.NET ostaje temelj svih .NET slojeva za pristup podacima, ponuda brzina, fleksibilnost i transparentnost. Tehnologije poput Entitetski okvir i Dotjeran izgraฤ‘eni su na ADO.NET-u, ลกto njihovo poznavanje ฤini kljuฤnim za ozbiljne .NET programere.


๐Ÿ” Najฤeลกฤ‡a pitanja za intervju za ADO.NET sa stvarnim scenarijima i strateลกkim odgovorima

1) ล to je ADO.NET i gdje se obiฤno koristi u poslovnim aplikacijama?

Oฤekivano od kandidata: Anketar ลพeli procijeniti vaลกe temeljno razumijevanje ADO.NET-a i njegove uloge u aplikacijama voฤ‘enim podacima, posebno unutar .NET ekosustava.

Primjer odgovora: ADO.NET je okvir za pristup podacima u .NET-u koji se koristi za povezivanje aplikacija s relacijskim bazama podataka kao ลกto je SQL Server. Pruลพa klase za dohvaฤ‡anje, manipuliranje i aลพuriranje podataka putem povezanih i nepovezanih modela. ฤŒesto se koristi u poslovnim aplikacijama za pouzdanu i skalabilnu komunikaciju s bazama podataka.


2) Moลพete li objasniti razliku izmeฤ‘u povezanih i nepovezanih arhitektura u ADO.NET-u?

Oฤekivano od kandidata: Anketar procjenjuje vaลกe razumijevanje performansi i skalabilnosti u pristupu bazi podataka.

Primjer odgovora: Povezana arhitektura koristi objekte poput SqlDataReader-a, koji zahtijevaju otvorenu vezu s bazom podataka tijekom ฤitanja podataka. Nepovezana arhitektura koristi DataSet i DataTable, ลกto omoguฤ‡uje uฤitavanje podataka u memoriju i rano zatvaranje veze s bazom podataka, poboljลกavajuฤ‡i skalabilnost i smanjujuฤ‡i koriลกtenje resursa.


3) Po ฤemu se DataSet i DataReader razlikuju i kada biste odabrali jedan u odnosu na drugi?

Oฤekivano od kandidata: Anketar ลพeli vidjeti moลพete li odabrati odgovarajuฤ‡e alate na temelju performansi i potreba primjene.

Primjer odgovora: DataReader je samo za prosljeฤ‘ivanje i samo za ฤitanje, ลกto ga ฤini brลพim i memorijski uฤinkovitijim za velike skupove rezultata. DataSet je u memoriji i podrลพava viลกe tablica i odnosa. U svojoj prethodnoj ulozi koristio sam DataReader za visokouฤinkovite znaฤajke izvjeลกฤ‡ivanja i DataSet za scenarije koji zahtijevaju izvanmreลพnu manipulaciju podacima.


4) Kako uฤinkovito upravljate vezama s bazom podataka u ADO.NET-u?

Oฤekivano od kandidata: Anketar provjerava vaลกe poznavanje najboljih praksi vezanih uz upravljanje resursima.

Primjer odgovora: Uฤinkovito rukovanje vezama ukljuฤuje otvaranje veza ลกto je kasnije moguฤ‡e i njihovo zatvaranje ฤim je posao zavrลกen. Koriลกtenje naredbe using osigurava pravilno odlaganje veza. Grupiranje veza u ADO.NET-u takoฤ‘er pomaลพe u poboljลกanju performansi ponovnom upotrebom postojeฤ‡ih veza.


5) ล to su parametrizirani upiti i zaลกto su vaลพni?

Oฤekivano od kandidata: Anketar ลพeli procijeniti vaลกe razumijevanje sigurnosti i sprjeฤavanja SQL injekcija.

Primjer odgovora: Parametrizirani upiti odvajaju SQL logiku od korisniฤkog unosa, ลกto pomaลพe u sprjeฤavanju SQL injekcijskih napada. Takoฤ‘er poboljลกavaju performanse omoguฤ‡ujuฤ‡i ponovnu upotrebu plana upita. Na mom prethodnom poslu, parametrizirani upiti bili su obvezni za sve operacije s bazom podataka kako bi se odrลพali sigurnosni standardi.


6) Opiลกite situaciju u kojoj ste morali optimizirati spor rad baze podataka koristeฤ‡i ADO.NET.

Oฤekivano od kandidata: Ispitivaฤ procjenjuje vaลกe vjeลกtine rjeลกavanja problema i iskustvo u optimizaciji uฤinka.

Primjer odgovora: Na prethodnoj poziciji sam identificirao spor upit uzrokovan nepotrebnim koriลกtenjem DataSeta. Zamijenio sam ga sa SqlDataReaderom i optimizirao sam SQL upit, ลกto je znaฤajno smanjilo vrijeme izvrลกavanja i potroลกnju memorije.


7) Kako se rjeลกavaju iznimke u ADO.NET aplikacijama?

Oฤekivano od kandidata: Anketar ลพeli razumjeti vaลก pristup rjeลกavanju pogreลกaka i stabilnosti aplikacije.

Primjer odgovora: Koristim blokove try-catch-finally za obradu iznimki kao ลกto je SqlException. Zapisivanje detalja o pogreลกci i osiguravanje zatvaranja veza u bloku finally su kljuฤni. Ovaj pristup pomaลพe u odrลพavanju stabilnosti aplikacije i pojednostavljuje rjeลกavanje problema.


8) ล to je DataAdapter i kako funkcionira sa DataSetom?

Oฤekivano od kandidata: Anketar provjerava vaลกe razumijevanje koncepata sinkronizacije podataka.

Primjer odgovora: DataAdapter djeluje kao most izmeฤ‘u DataSeta i baze podataka. Koristi naredbe Select, Insert, Update i Delete za popunjavanje DataSeta i ลกirenje promjena natrag u bazu podataka. To je korisno u nepovezanim scenarijima gdje su potrebna skupna aลพuriranja.


9) Kako biste dizajnirali ADO.NET-bazirano rjeลกenje za aplikaciju s visokom konkurentnoลกฤ‡u?

Oฤekivano od kandidata: Anketar ลพeli procijeniti vaลกe arhitektonsko razmiลกljanje i razmatranja skalabilnosti.

Primjer odgovora: Minimizirao bih vrijeme otvorene veze, koristio grupiranje veza, preferirao DataReader gdje je to moguฤ‡e i osigurao uฤinkovite SQL upite. U mojoj posljednjoj ulozi, ovaj pristup pomogao je u podrลกci velikog broja istovremenih korisnika bez uskih grla u bazi podataka.


10) Kako osiguravate odrลพivost i moguฤ‡nost testiranja u ADO.NET kodu?

Oฤekivano od kandidata: Anketar traลพi ฤiste prakse kodiranja i dugoroฤno razmiลกljanje.

Primjer odgovora: Odrลพavanje osiguravam odvajanjem logike pristupa podacima u repozitorije ili slojeve pristupa podacima. Koriลกtenje jasnog imenovanja metoda, parametriziranih upita i centraliziranog upravljanja vezama poboljลกava ฤitljivost i moguฤ‡nost testiranja. Jediniฤni testovi mogu se pisati apstrahiranjem operacija baze podataka iza suฤelja.

Saลพmite ovu objavu uz: