Коришћење DataReader објекта

Након успостављања конекције ка бази података и креирања SQL упита, неопходно је извршити креирани упит како би се прибавили подаци. Уколико се користи OLE DB data provider, најлакши и најбржи начин за прибављање података је коришћење DataReader објеката. DataReader објекти могу само да читају податке и то ред по ред унапред. Имајући ово у виду, јасно је да је употреба DataReader објеката корисна само у ситуацијама када је креирани упит SELECT SQL наредба. DataReader објекти посебно се користе када је потребно брзо итерирати кроз велику количину података при чему није потребно поседовати локалне копије једном очитаних података. DataReader објекти креирају се позивом ExecuteReader() методе креиране команде. Након креирања DataReader објекта, један ред резултујуће табеле података прибавља се коришћењем Read() методе. Уколико претпоставимо да је креирана конекција ка бази, да би се очитали подаци из базе података неопходно је написати SQL упит који селектује потребне информације, креирати команду која ће извршити упит и креирати DataReader објекат који ће прибавити податке. У наставку ће бити приказан део програмског кода који извршава селектовање свих редова из табеле RADNIK у бази података PREDUZECE.

Селектовање података

OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\
PREDUZECE.mdb";
String strSQL = "Select * from RADNIK";
OleDbCommand comm = new OleDbCommand(strSQL, conn);
OleDbDataReader reader;
conn.Open();
reader = comm.ExecuteReader();
while (reader .Read())
{
//programski kod koji vrSi obradu pribavljenih podataka
}
conn.Close();

Поред извршења SQL упита који врше селектовање података, могуће је извршити SQL упите који врше додавање, измену или брисање података из базе података. У наставку ће бити приказан део програмског кода који врши додавање новог радника, измену података о раднику и брише податке о раднику у табели RADNIK базе података PREDUZECE.

Додавање, измена и брисање података

OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\
PREDUZECE.mdb";
try
{
conn.Open();
//dodavanje novog radnika
String strSQL1 = "Insert into RADNIK values (123456781, 'Marko', 'J', 'Petrovic', '2/9/1965', 'ObilicGev Venac', 'M', '30000', 333445555, 5)";
OleDbCommand commi = new OleDbCommand(strSQL1, conn);
comm1.ExecuteNonQuery();
//izmena podataka o radniku
String strSQL2 = "Update RADNIK set Plata=50000 where MatBr=123456781";
OleDbCommand comm2 = new OleDbCommand(strSQL2, conn);
comm2.ExecuteNonQuery();
//brisanje podataka o radniku
String strSQL3 = "Delete from RADNIK where MatBr=123456781";
OleDbCommand comm3 = new OleDbCommand(strSQL3, conn);
comm3.ExecuteNonQuery();
}
catch (Exception exc)
{
//obrada izuzetka
}
finally
{
conn.Close();
}

Често је неопходно параметризовати упите који се прослеђују бази података на основу података које су корисници унели у апликацију. Како би прослеђивање података које су корисници унели било што сигурније, ADO.NET поседује могућност креирања параметризованих команди. Свака ADO.NET команда поседује колекцију индивидуалних параметара. Сваки од параметара представља независни објекат који је могуће креирати и додати у колекцију ADO.NET Command објекта. Параметри заузимају одређено место у SQL упиту који команда извршава. Како би се указала позиција у SQL упиту на којој ће се наћи одређени параметар, користи се prefix @ праћен именом одговарајућег параметра. У наставку ће бити приказан пример креирања и извршења параметризоване команде при чему се користи OLE DB data provider. У случају коришћења OLE DB data provider-а, параметри су инстанце класе OleDbParameter.

Извршење параметризоване команде

OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\
PREDUZECE.mdb";
//kreiranje parametra
OleDbParameter param = new OleDbParameter();
param.ParameterName = "@parameter";
param.Value = "Marko";
param.OleDbType = OleDbType.LongVarChar;
//kreiranje parametrizovanog upita
String strSQL = "Select * from RADNIK where Ime=@parameter";
OleDbCommand comm = new OleDbCommand(strSQL, conn);
//dodavanje parametra u kolekciju parametara komande
comm.Parameters.Add(param);
try
{
conn.Open();
OleDbDataReader dr = comm.ExecuteReader();
while (dr.Read())
{
//obrada podataka
}
}
catch (Exception exc)
{
}
finally
{
conn.Close();
}

One thought on “Коришћење DataReader објекта

  1. Повратни пинг: ADO.NET – Рачунари и програмирање

Оставите одговор

Попуните детаље испод или притисните на иконицу да бисте се пријавили:

WordPress.com лого

Коментаришет користећи свој WordPress.com налог. Одјавите се /  Промени )

Google photo

Коментаришет користећи свој Google налог. Одјавите се /  Промени )

Слика на Твитеру

Коментаришет користећи свој Twitter налог. Одјавите се /  Промени )

Фејсбукова фотографија

Коментаришет користећи свој Facebook налог. Одјавите се /  Промени )

Повезивање са %s