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



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

Amaliy mashg`ulot bayoni:

DataSet yaratish va unga ob’yektlarlar kiritish quyidagicha:

1. DataSet-ni yaratish.

2. DataTable yaratish

3. DataColumn-ni yaratish

4. DataTolumn-ni DataTable-ga qo'shish

5. DataRow yaratish

6. DataRow-ni DataTable-ga qo'shish

7. DataSet-ga DataTable qo'shish

1. DataSet yaratish

Biz loyihani yaratamiz, shaklga DataGridView1 ni qo'shamiz. Form1_Load shaklidagi voqealarni qayta ishlashda quyidagilarni yozing:



//1. DsetUsers nomli DataSet yaratamiz.

DataSet dset = new DataSet("dsetUsers");
//2. user nomli DataTable yaratamiz.

DataTable dtable = new DataTable("user"); //DataTable

//3. id name surnamr age jadvali uchun ustunlar yaratamiz.

DataColumn id = new DataColumn("id", typeof(int));

id.Unique = true; //id уникальное

id.AutoIncrement = true; // Autoincrement - maydonga avtomatik ravishda qiymat beriladi

id.AutoIncrementSeed = 1; //

id.AutoIncrementStep = 1; // Autoincrement qadami

DataColumn name = new DataColumn("name", typeof(string));

DataColumn surname = new DataColumn("surname", typeof(string));

DataColumn age = new DataColumn("age", typeof(int));

//4. DataTolumn-ni DataTable-ga qo'shish

dtable.Columns.AddRange(new DataColumn[] { id, name, surname, age });

//5. DataRowni yaratish

DataRow row = dtable.NewRow();

row["name"] = "Vasya";

row["surname"] = "Pupkin";

row["age"] = 5;

DataRow row1 = dtable.NewRow();

row1[1] = "Misha";

row1[2] = "Pupkin";

row1[3] = 23;

//6. DataTow-ga DataRow qo'shish

dtable.Rows.Add(row);

dtable.Rows.Add(row1);

7. DataSet-ga DataTable qo'shish

dset.Tables.Add(dtable);

dataGridView1.DataSource = dset.Tables[0];

//dataGridView1.DataSource = dset.Tables["users"];

4.4. Ma'lumotlar jadvallari bilan ishlash.

4.4.1. DataSet, DataTable va DataColumn ob’yektlari.

DataSet ob'ekti ma'lumotlar bazasidan ma'lumotlarni saqlash uchun buferdir. Ushbu bufer jadvallar ko'rinishidagi tuzilgan ma'lumotlarni saqlash uchun mo'ljallangan, shuning uchun birinchi va eng aniq ichki joylashtirilgan DataSet DataTable-dir. Bitta DataSet ob'ekti ichida ma'lumotlar bazasidan yuklangan bir nechta jadvallarni tegishli DataTable ob’yektlariga joylashtirish mumkin.

Har bir jadval ustunlar (maydonlar yoki ustunlar deb ham ataladi) va satrlardan (yozuvlardan) iborat. Ularga kirish va DataTable ob'ektidagi ustunlar va qatorlarni boshqarish uchun maxsus ob’yektlar - DataColumn va DataRow mavjud. Jadvallar o'rtasida munosabatlar bo'lishi mumkin - bu yerda ular DataRelation ob'ekti bilan ifodalanadi. Va nihoyat, jadvallar birlamchi va ikkilamchi kalitlarga ega - bu UniqueConstraint va ForeighKeyConstraint ikkita kichik sinflari bilan cheklash ob'ekti ularni tavsiflaydi. Shuni esda tutingki, dastur ob'ektlari va tegishli ma'lumotlar bazasi ob'ektlari teng emas.

Yuklangan jadvallar barcha kerakli ob’yektlarni avtomatik ravishda yaratib bermaydi, ba'zi hollarda buni o'zingiz qilishingiz kerak. Ob'ektlarning o'zi ham juda nozik va murakkab tuzilishga ega, shuning uchun bu juda qo'pol yaqinlashuv bo'ladi. Biroq, dastlab mohiyatini tushunish uchun quyidagi munosabatlarni eslab qolish foydalidir:



DataSet = = < bir yoki bir nechta DataTable ob’yektlari >.

DataTable = .

DataTable = = =

= .

DataTable = = = < DataRow ob’yektlari to`plami>.

DataColumn = .

DataRow = .

DataRelation = .

Savol tug'iladi: jadvalning tarkibini, masalan, DataGridView elementida aks ettirish uchun ularsiz nima qilishingiz mumkin? Haqiqat shundaki, oddiy ma'lumotni namoyish qilish uchun ushbu ob'ektlarni yaratish talab qilinmaydi, ammo bu holda barcha ma'lumotlar Microsoft Word hujjatidagi jadvallar kabi bir hil matn o'zgaruvchilari bo'ladi. DataSet ma'lumotlar strukturasini o'zi shakllantira olmaydi - o'zgaruvchilar turi, birlamchi va ikkilamchi kalitlar, jadvallar o'rtasidagi munosabatlar. Bunday tuzilmani boshqarish uchun uning etarli darajada namoyish etilishi uchun (masalan, dastur rejimida yaratilgan elementlarga havola qilingan ma'lumotlarni aks ettirish) ushbu ob'ektlarni aniqlash kerak.

DataTable va DataColumn ob’yektlarini dasturiy ravishda yaratish.

Yuqorida aytib o'tilganidek, barcha ADO ob’yektlari dasturiy jihatdan yaratilishi mumkin. Masalan, jadval va ustunlar yaratish:



DataSet dsTests = new System.Data.DataSet();

//

// dsTests

//

dsTests.DataSetName = "NewDataSet";

dsTests.Locale = new System.Globalization.CultureInfo("ru-RU");

E'tibor bering, oxirgi satrda jadvalning milliy sozlamalari haqida ma'lumot mavjud: ru-RU. Agar ishlab chiqilgan dastur u ishlab chiqilgan mamlakatdan tashqarida ishlatilsa (bu holda, Rossiya) zarur.

Endi Questions jadvali uchun DataTable yaratamiz (savollar):

DataTable dtQuestions = dsTests.Tables.Add("Questions");

//yoki

//DataTable dtQuestions = new DataTable("Questions");

//dsTests.Tables.Add(dtQuestions);

Bu dtQuestions DataTable-ni o'rnatadi, so'ngra dsTests ob'ektining Tables xususiyatining Add usulini chaqiradi va Questions jadval nomini beradi. Keyinchalik, dtQuestions ob'ektida maydonlar yaratamiz:



DataColumn dсQuestID = dtQuestions.Columns.Add("questID", typeof(Int32)); dсQuestID.Unique = true;

DataColumn dcQuestion = dtQuestions.Columns.Add("question");

DataColumn dcQuestType = dtQuestions.Columns.Add("questType", typeof(Int32));

Questions jadvalidagi mos ustunlarni aks ettirish uchun zarur bo'lgan maydonlarni yaratamiz. dtQuestions ob'ektining Columns xususiyatining qayta yuklangan usuli Add ustun nomini va uning ma'lumotlar turini ko'rsatishga imkon beradi (1-rasm).



1-rasm. Maydon yaratish

Unique xususiyati bu maydonda takrorlanadigan qiymatlar bo'lmasligi kerakligini, u noyob bo'lishi kerakligini bildiradi (bu yerda questID maydoni Questions jadvalining asosiy kaliti hisoblanadi).

Xuddi shu tarzda, biz Variants jadvali uchun DataTable ob'ektini (javob variantlari) va tegishli maydonlarni yaratamiz:



// "Variants" jadvalini yaratamiz.

DataTable dtVariants = dsTests.Tables.Add("Variants");

// "Variants" jadvalini to`ldiramiz

DataColumn dcID = dtVariants.Columns.Add("id", typeof(Int32));

dcID.Unique = true;

dcID.AutoIncrement = true;

DataColumn dcVariantQuestID = dtVariants.Columns.Add("questID", typeof(Int32));

DataColumn dcVariant = dtVariants.Columns.Add("variant");

DataColumn dcIsRight = dtVariants.Columns.Add("isRight", typeof(Boolean));

Bu yerda biz dcID ob'ektining AutoIncrement xususiyatini true ga qo'shimcha ravishda o'rnatdik. AutoIncrement xususiyati (hisoblagich) Microsoft Access-da “Hisoblagich” ma'lumotlar turiga o'xshash maydon uchun hisoblagich yaratishga imkon beradi.

Endi jadvallar orasidagi munosabatni yaratishga kirishamiz. Ma'lumotlar bazasida Questions bosh jadvali va Variants qism jadvali ikkala jadvalda mavjud bo'lgan QuestID maydoni bilan bog'langan bo'lar edi. Questions jadvalining questID maydoni uchun dasturlarni yaratishda dsQuestID ob'ekti va Variants jadvalidagi xuddi shu maydon uchun dcVariantQuestID ob'ekti yaratildi. Kodda jadvallar orasidagi bog'lanishni yaratish quyidagicha bo'ladi:

DataRelation drQuestionsVariants = new DataRelation("QuestionsVariants",

dсQuestID, dcVariantQuestID);

dsTests.Relations.Add(drQuestionsVariants);

Bu yerda DataRelation ob'ekti konstruktorida drQuestionsVariants nomi DataRelation ob'ekti (klassi) ning nomi va "QuestionsVariants" qatori konstruktorga berilgan relationName xususiyati - yaratilayotgan drQuestionsVariants ob'ekti tarkibidagi munosabatlar nomi. Boshqacha qilib aytganda, drQuestionsVariants - bu DataRelation misoli nomi, biz uni kodda ishlatamiz va RelationName xususiyati shunchaki aks ettirilgan munosabatlarning nomi bo'lib, ularni o'chirish yoki o'zgartirish mumkin.

Shunday qilib, jadvallarni, maydonlarni va hatto jadvallar o'rtasidagi munosabatlarni aks ettirish uchun barcha ob'ektlarni dasturiy ravishda yaratishingiz mumkin.


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