Amaliy mashg’ulоt. DataSet bilan jadval, ustun va satrlarga murojaat. Mashg’ulotning maqsadi



Download 143,22 Kb.
bet6/7
Sana31.12.2021
Hajmi143,22 Kb.
#258928
1   2   3   4   5   6   7
Bog'liq
DataSet bilan jadval, ustun va satrlarga murojaat.

Ifoda asosida ustunlar yarating.

Ma'lumotlar bazasini yaratishda siz unga mavjud ma'lumotlardan olinadigan qiymatlarni qo'ymasligingiz kerak. Ilgari "Turlar" jadvalini o'z ichiga olgan BDTur_firm.mdb ma'lumotlar bazasi yaratilgan. Ushbu jadvalda ekskursiyalar narxini ko'rsatadigan "narx" maydoni mavjud. Amalda sizga turli xil valyutalarda ko'rsatilgan narx qiymati, soliqni hisobga olgan holda qiymat, diskontlangan qiymat va boshqalar kerak bo'lishi mumkin. Har bir aniq holat uchun siz ma'lumotlar bazasining o'ziga kiritmasdan qo'shimcha maydon (hisoblash) olishingiz mumkin.

ADO.NET texnologiyasi Expression asosidagi DataColumn ob’yektlarini yaratishga imkon beradi. Keling, yangi Windows dasturini yarataylik.

Forma kodiga nomlar maydonini kiritamiz: using System.Data.OleDb;

Forma sinfida biz CommandText va ConnectionString qatorlarini aniqlaymiz:

string commandText = "SELECT Информация, [Код тура], Название, Цена FROM Туры";

string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +

@”D:\ВМИ\For ADO\BDTur_firm.mdb";

Forma yaratuvchisida biz "Tours" jadvalini DataGridView boshqaruvida aks ettirish uchun barcha ob’yektlarni dasturiy ravishda yaratamiz:



public Form1() {

InitializeComponent();

OleDbConnection conn = new OleDbConnection(connectionString);

OleDbCommand myCommand = new OleDbCommand();

myCommand.Connection = conn;

myCommand.CommandText = commandText;

OleDbDataAdapter dataAdapter = new OleDbDataAdapter();

dataAdapter. SelectCommand = myCommand;

DataSet dsTours = new DataSet();

DataTable dtTours = dsTours.Tables.Add("Turlar");

DataColumn ddDtour = dtTours.Columns.Add("Tur kodi", typeof(Int32));

ddDtour.Unique = true;

DataColumn dcName = dtTours.Columns.Add("Nomlanishi");

DataColumn dcPrice = dtTours.Columns.Add("Цена", typeof(Decimal));

DataColumn dcInformation = dtTours.Columns.Add("Ma’lumot");

conn.Open();

dataAdapter.Fill(dsTours.Tables["Туры"]);

conn.Close();

dataGridl.DataSource = dsTours.Tables["Туры"].DefaultView;

}

Ilovani ishga tushiramiz (3-rasm).



3-rasm. "Turlar" jadvalining tarkibini namoyish etish



DataColumn dcPrice = dtTours.Columns.Add ("Narx", typeof (Decimal));

DataColumn dcPriceNDS = dtTours.Columns.Add ("QQS bilan narx", typeof (Decimal));

dcPriceNDS.Expression = "Narx * 0,15 + Narx";

DataColumn dcPricewithDiscount = dtTours.Columns.Add ("Chegirma narxi", typeof (Decimal));

dcPricewithDiscount.Expression = "Narx-narx * 0.10";

...

Yaratilgan DataColumn ob'ektining Expression xususiyati belgilangan maydonning barcha qiymatlari uchun ifodalarni o'rnatadi (4-rasm).



4-rasm. Qiymatga asoslangan maydonlarni dasturiy yaratish.

Expression xususiyati, shuningdek, agregat funktsiyalarini, mag'lubiyatni birlashtirishni va ota-ona va bola jadvallari havolalarini qo'llab-quvvatlaydi.

Ma'lumotlar bazasidagi o'zgarishlarni kuzatib borish

DataSet va DataTable ob’yektlari qayta yuklangan GetChanges usulini quyidagi konstruktor bilan ta'minlaydi (5-rasm).

5-rasm GetChanges usuli

GetChanges usuli yangi DataSet yoki DataTable-ni asl ob'ektning tuzilishi bilan qaytaradi, lekin asl ob'ektdan faqat o'zgartirilgan yozuvlarni o'z ichiga oladi. 5-rasmda asl ob'ektlar myDataSet (A) va myDataTable (B), GetChanges usuli bilan yaratilgan yangilari newDataSet (A) va newDataTable (B). DataRowState sanash qiymatidan parametr sifatida foydalanib, siz ma'lum bir holatga ega bo'lgan yozuvlarni olishingiz mumkin, masalan, faqat o'chirilgan (Deleted) yoki qo'shilgan (Added).

Ma'lumotlar bazasiga o'zgartirishlar kiritishda GetChanges usuli chaqiruvi natijasida DataSet-ni yuborish trafikni kamaytiradi. Darhaqiqat, faqatgina kiritilgan o'zgarishlarni yuborish, boshqa barcha narsalar teng bo'lgan holda, to'liq DataSet-ni yuborishdan ko'ra kamroq resurslarni talab qiladi. Bu, ayniqsa, katta hajmdagi ma'lumotlar yoki ko'plab ulanishlar bilan ishlashda muhim ahamiyat kasb etadi.

GetChanges usuli shuningdek ma'lumotlarning ta'sirlanganligini ko'rsatadigan signalizatsiya bayrog'i sifatida ishlatiladi. Bunday tekshiruvni, masalan, quyidagi kod yordamida amalga oshirishingiz mumkin:

private void Form1_Closing (ob1ject sender, System.ComponentModel.CancelEventArgs e) {

DataSet ds = dataSet11.GetChanges ();

if (ds == null) return;

if (MessageBox.Show ("Ma'lumotlar bazasidagi o'zgarishlarni saqlamoqchimisiz?", "O'chirish", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)

DataAdapter1.Update (ds);

}


Download 143,22 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish