Академический Документы
Профессиональный Документы
Культура Документы
KURS ISHI
Mavzu: _________________________________________________________
Jizzax – 2023
MUNDARIJA
KIRISH ……………………………………………………………………..….......3
I-BOB. VISUAL DASTURLASH MUHITIDA AXBOROT TIZIMLARINI
YARATISH TEXNOLOGIYALARI………………………………………………7
1.1 .Net Framework imkoniyatlari ………………………………….………………...7
1.2 ADO.NET asoslari………………………………………………………………10
II. TASHKILOT XODIMLARINI MA’LUMOTLARIMI JAMLOVCHI TIZIM.
2.1 Dasturiy ta’minotni ishlab chiqish.…………………………………….…………14
2.2 Ma’lumotlar strukturalarini loyihalash ………………………….…………….17
2.3Dasturning ishlash tartibi ………………………………………………………..17
Xulosa………………………………………………………………………………......21
2.4Foydalanilgan adabiyotlar ro‘yxati………………………………………..........22
Ilova……………………………………………………………………………….........23
2
KIRISH
Kurs ishining dolzarbligi. XXI asr boshiga kelib, “Elektron ta’lim”, “Elektron
boshqaruv”, “Ochiq ta’lim”, “Masofaviy ta’lim”, “Axborotlashgan ta’lim” kabi
tushunchalar hayotimizga kundan-kun singib bormoqda. Muxtaram birinchi
prezidentimiz I.A.Karimov so‘zlari bilan aytganda, “Hozirgi axborot, kommunikatsiya,
kompyuter texnologiyalari asrida, internet kundan-kunga hayotimizning barcha
jabhalariga tobora chuqur va keng kirib borayotgan bir paytda, odamlarning ongi va
tafakkuri uchun kurash hal qiluvchi ahamiyat kasb etayotgan bir vaziyatda bu
masalalarning jamiyatimiz uchun naqadar dolzarb va ustuvor bo‘lib borayotgani haqida
gapirib o‘tirishga hojat yo‘q”.
Zamonaviy kompyuter juda ulkan imkoniyatlarga egaki, uning uchun shaxmat
o‘ynashdan tortib, tibbiy tashxis qo‘yish, korxonalarni boshqarish, qadimgi xalqlarning
sirli xatlarini “o‘qib”, mazmunini so‘zlab berish, she’r yozish, kuylar ijro etish, katta
hajmdagi kitoblarga annotatsiyalar yozish, loyihalar tarxini chizish kabi yuzlab mehnat
faoliyati turlarining barchasida, albatta, zamonaviy kompyuter texnologiyalari ham ishchi
kuchi, ham vaqt jihatidan juda yaqin yordamchi sanaladi. Hayotimizda ilm-fan,
texnika,zamonaviy texnologiyalarning jadal suratda kirib kelishi boshqa ko‘p sohalar
qatorida ta’lim sohasida ham yangi qarashlar, uslublar va texnologiyalarni yuzaga
keltirdi. O‘zbеkiston Rеspublikasi 7 Vazirlar Mahkamasining 2001 yil 23 maydagi
“2001-2005 yillarda kompyutеr va axborot tеxnologiyalarini rivojlantirish, Intеrnеtning
xalqaro axborot tizimlariga kеng kirib borishini ta’minlash dasturini ishlab chiqishni
tashkil etish choratadbirlari to‘g‘risida”gi 230-sonli1, 2002 yil 30 maydagi
“Kompyutеrlashtirishni yanada rivojlantirish va axborot-kommunikatsiya
tеxnologiyalarini joriy etish to‘g‘risida”gi Prеzidеntning farmoni, mazkur farmonni
amalga oshirish yuzasidan O‘zbеkiston Rеspublikasi Vazirlar Mahkamasining 2002 yil 6
iyundagi “2002- 2010 yillarda kompyutеrlashtirish va axborot-tеlеkommunikatsiya
tеxnologiyalarini rivojlantirish dasturi” to‘g‘risidagi Qarori e’lon qilindi.
3
Haqiqatda ham intellektual tizimlar borasida dunyoda juda ko‘plab ishlar
qilinmoqda. Buning isboti sifatida Intellektual.ru saytini misol qilib aytish mumkin.
Respublikamiz olimlaridan U.Yuldashev ko‘p yillardan buyon O‘zbekiston Respublikasi
Vazirlar Mahkamasi huzuridagi intellektual tizimlarni ishlab chiqish sohasidagi ishlarni
olib bormoqda. Yana bir olimlardan Sh.Nazarov matematika va axborot texnologiyalari
institutida intellektual tizimlarni yaratish boyicha ilmiy tadqiqot ishlarini olib bormoqda.
Bu ilmiy tadqiqot ishlari eski dasturlash tillarida yaratilganligini aytish mumkin. Hozirgi
kunda dasturlash tillarining yangi avlodlari bo‘lganligi uchun yangi intellektual tizimlarni
yaratish kerak.
O‘zbekistonda yuritilayotgan raqamli iqtisodiyot siyosati zamirida ham yangi
texnologiyalarni rivojlantirish maqsadi ko‘zda tutilmoqda. Davlatimiz rahbarining 2020-
yil 28-apreldagi “Raqamli iqtisodiyot va elektron hukumatni keng joriy yetish chora-
tadbirlari to‘g‘risida” gi qaroriga muvofiq, raqamli iqtisodiyot bilan shug‘ullanadigan
yaxlit tizim yaratildi. “Elektron hukumat”, iqtisodiyot tarmoqlari va qishloq xo‘jaligini
raqamlashtirish, IT parklarini tashkil yetish va boshqarish kabi vazifalar to‘liq Axborot
texnologiyalari va kommunikasiyalarini rivojlantirish vazirligi vakolatiga o‘tdi.
Bugun Yangi O‘zbekiston hayotining barcha sohalari chuqur islohotlar maydoniga
aylangan. Bu jarayonda ijtimoiy sohaning asosi hisoblangan ta’lim tizimidagi
o‘zgarishlar haqida to‘lqinlanib so‘zlamaslikning iloji yo‘q. Mamlakatimizda so‘nggi
yillarda ta’lim tizimining barcha bosqichlarini zamonaviy talablar asosida tashkil etish
bo‘yicha amaliy ishlar hal qiluvchi bosqichga kirdi.
4
hamda ta’lim sifatini oshirish, raqamli texnologiyalar va ta’lim platformalarini joriy etish,
yoshlarni ilmiy faoliyatga jalb qilish, innovatsion tuzilmalarni shakllantirish, ilmiy
tadqiqotlar natijalarini tijoratlashtirish, xalqaro e’tirofga erishish hamda boshqa ko‘plab
aniq yo‘nalishlar belgilab berilgan. Bularning barchasi ta’lim jarayonini yangi sifat
bosqichiga ko‘tarish uchun xizmat qiladi.
Kurs ishining maqsadi.OTM kafedralarida hujjatlarni boshqarishni
avtomatlashtirish orqali ish sifatini yaxshilash, vaqt samaradorligini oshirish kurs
ishining asosiy maqsadi hisoblanadi. Hozirda har bir sohani avtomatlashtirish
foydalanuvchilar uchun bir qancha qulayliklarni yaratib bermoqda. Avtomatlashtirish
yordamida kafedra xizmatlari soddalashtiriladi.Har bir tajribali menejer,
avtomatlashtirish dasturining tegishli yordamisiz xizmatlar bilan ishlash juda qiyin
ekanligini yaxshi tushunadi. Avtomatlashtirish sohasi jadal rivojlanmoqda. Raqobat o‘sib
bormoqda. Shu sababli, xizmat ko‘rsatish sohasidagi so‘nggi tendentsiyalarni kuzatib
borish, rivojlantirish, yangi bozorlarni o‘zlashtirish, yangi mehmonlarni jalb qilish,
shunchaki katta miqdordagi daromad olish va erishilgan natijalar bilan to‘xtamaslik
uchun zamonaviy avtomatizatsiya yechimlaridan foydalanish juda muhimdir.Oddiy
xodimlarga tizim boshqaruvini o‘zlashtirishga yordam berish ko‘p vaqt talab qilmaydi.
Dasturimiz foydalanuvchi interfeysi imkon qadar sodda va qulay bo‘lishi uchun maxsus
ishlab chiqilgan.
Kurs ishining vazifalari.Kurs ishining asosiy vazifalari quyidagilardan iborat:
Xodimlar ishlash sifatini yaxshilash va vaqt samaradorligini yaxshilash
Kafedra o‘qtuvchilari bilan kafedra mudiri o‘rtasida hujjat almashinuvini
avtomatlashtirish
O‘tuvchilarni hujjatlarni qog‘oz variantida emas, elektron variantida o‘z
profilida saqlash
5
Kurs ishi tuzilmasining tavsifi: Mazkur tadqiqot ishi kirish, tanlangan ob’ektlar
va tadqiqot usullari, kurs ishi boblari, xulosa hamda foydalanilgan adabiyotlar
ro‘yxatidan iboratdir.
Kurs ishining kirish qismida qaralayotgan ishning dolzarbligi, ishning maqsadi,
ishning ilmiyligi, tadqiqotning amaliy ahamiyati va kurs ishining tuzilishi to‘g‘risidagi
umumiy ma’lumotlar keltirilgan.
Kurs ishining tanlangan ob’ektlar va tadqiqot usullari bo‘limida tadqiqot olib
borilayotgan ob’ekt haqida umumiy ma’lumotlar berilgan. Shu bilan birga tadqiqot
ob’ektini o‘rganish usullari va qo‘yilgan maqsadga erishish uchun kerak bo‘ladigan
qurilma va dasturiy ta’minotlar, ishni amalga oshirish usullari haqida umumiy
ma’lumotlar keltiriladi.
Kurs ishining xulosa qismida bajarilgan ishning amaliyotga qo‘llanilishi natijasida
kelib chiqadigan xulosalar va tavsiyalar keltiriladi.
Kurs ishining so‘ngida esa foydalanilgan adabiyotlar, elektron kitoblar ro‘yxatlari
keltirilgan.
Kurs ishining tuzilishi: Kurs ishi kirish qismi, mundarija, xulosa va ilmiy-amaliy
tavsiyalar hamda foydalangan adabiyotlar ro‘yxatidan iborat.
Men OTM kafedra hujjatlarini boshqarish tizimini kurs ishi sifatida C# dasturlash tilining
keng imkoniyatlaridan foydalangan holda windows yoki krossplatformali muhit uchun
OTM kafedralarida hujjatlarni boshqarish tizimini yaratishni o‘z oldimga maqsad qilib
oldim. Bu turdagi dasturiy mahsulot hozirgi kunda mavjud bo‘lsada, bir tomondan C#
dasturlash tilining keng imkoniyatlarini ommaga taqdim etish, boshqa tomondan OTM
kafedralarida hujjatlarniboshqarish sodda va oddiy ko‘rinishiga talab yuqoriligini
inobatga olgan holda ushbu dasturiy mahsulotni ishlab chiqishga qaror qildim.
Hodim ma’lumotlar bazasida yozuvlarni yaratishi, o‘zgartirishi va o‘chirishi
mumkin. Hodim tomonidan dasturdan foydalanish oson va sodda va intuitiv interfeysga
ega.
6
I-BOB. VISUAL DASTURLASH MUHITIDA AXBOROT TIZIMLARINI
YARATISH TEXNOLOGIYALARI
1.1. .NET Framework imkoniyatlari
Ishlab chiqarish
7
Oʻsha kuni boʻlib oʻtgan matbuot anjumanida Balmer shaxsiy kompyuterlarining
ulkan imkoniyatiga qaramay, korporatsiya keyingi avlod xizmatlarining shaxsiy
kompyuter boʻlmagan qurilmalarda ham ishlashi kafolatlanishini taʼminlash muhimligiga
urgʻru bergan. Geytsga kelsak, PatriciaSeybold Group tahlilchisi Enn Tomas Meyns
uning soʻzlarini tahlil qilib, kompaniyaga faqat ish kompyuterlariga eʼtibor qaratishdan
voz kechib, mobil qurilmalarni ishlab chiqishga oʻtish foyda keltirishini aytdi. Uning
fikriga koʻra, Geyts Windows bilan qattiq bogʻlanmagan kompyuterda ishlashning yangi
davriga yoʻl ochdi.
.NET arxitekturasi
8
mashinasidan foydalanilganda, oʻrnatilgan JIT-kompilyator “shu ondayoq” (just in time)
oraliq baytkodni kerakli protsessorning mashina kodlariga aylantiradi. Dinamik
kompilyatsiya qilishning zamonaviy texnologiyasi yuqori darajadagi ishlashga erishishga
imkon beradi. CLR VM shuningdek, asosiy xavfsizlik, xotira boshqaruvi va istisnolar
bilan shugʻullanadi, bu esa ishlab chiquvchiga ishning bir qismini tejaydi.
Microsoft Visual Studio (C#, Visual Basic .NET, Managed C++, F#);
SharpDevelop;
MonoDevelop;
Embarcadero RAD Studio (Delphi for .NET); oldingi Borland Developer
Studio (Delphi for .NET, C#);
A# (Ada);
Zonnon;
PascalABC.NET;
JetBrains Rider.
9
.NET ilovalari matn muharririda kompilyatorni buyruqlar satridan oddiygina
chaqirish orqali ham foydalanish mumkin.
Microsoft .NET ning asosiy gʻoyalaridan biri bu turli tillarda yozilgan dasturiy
qismlarning mosligidir. Masalan, Microsoft .NET uchun C++ tilida yozilgan xizmat
Delphida yozilgan kutubxonadan sinf usuliga kirishi mumkin; C# da siz Visual
Basic .NET da yozilgan sinfdan meros boʻladigan sinfni yozishingiz mumkin va C# da
yozilgan usul bilan chiqarilgan istisno Delphida amalga oshirilib, ishlov berilishi
mumkin. .NET dagi har bir kutubxonada (montajda) oʻz versiyasi haqida maʼlumot
mavjud boʻlib, bu toʻplamlarning turli versiyalari oʻrtasida yuzaga kelishi mumkin
boʻlgan ziddiyatlarni bartaraf etish imkonini beradi.
C#
Visual Basic .NET
JScript .NET
C++/CLI — Managed C ++ ning yangi versiyasi
F# — VS2010/VS2012/VS2015/VS2017/VS2019 tarkibiga kiritilgan ML
dasturlash tillari oilasining aʼzosi.
J# — oxirgi marta VS2005 da kiritilgan
1.2 ADO.NET asoslari
10
Bundan tashqari, ma’lumotlar bazasini boshqarish tizimlari juda ko‘p bo‘lishi
mumkinligini ta’kidlash kerak. O‘zlarining mohiyatiga ko‘ra, ular farq qilishi mumkin.
Masalan, SQL Server so‘rovlarni tuzishda T-SQL dan foydalanadi, MySQL va Oracle esa
PL-SQL-dan foydalanadilar. Turli ma’lumotlar bazalari tizimlarida har xil turdagi
ma’lumotlar bo‘lishi mumkin. Boshqa fikrlar ham farq qilishi mumkin. Biroq,
ADO.NETning funktsional imkoniyatlari ishlab chiquvchilarga keng qamrovli DBMS
bilan ishlash uchun birlashtirilgan interfeysni taqdim etadigan tarzda yaratilgan.
ADO.NET-da ma’lumotlar bazasi bilan o‘zaro ishlash interfeysining asosini
cheklangan ob’ektlar to‘plami taqdim etadi: Connection, Command, DataReader, DataSet
va DataAdapter. Ulanish ob’ekti yordamida ma’lumotlar manbasiga ulanish o‘rnatiladi.
Buyruq ob’ekti ma’lumotlar bazasi ma’lumotlari bilan operatsiyalarni bajarishga imkon
beradi. DataReader ob’ekti so‘rov natijasida olingan ma’lumotlarni o‘qiydi. DataSet
ob’ekti ma’lumotlar bazasidan ma’lumotlarni saqlash uchun mo‘ljallangan va
ma’lumotlar bazasidan qat’i nazar ular bilan ishlashga imkon beradi. Va DataAdapter -
bu DataSet va ma’lumotlar manbai o‘rtasida vositachi. Ko‘pincha ma’lumotlar bazasi
bilan ishlash ushbu ob’ektlardan o‘tadi.
Biroq, turli xil ma’lumotlar manbalari uchun bir xil ob’ektlardan foydalanish
uchun tegishli ma’lumot etkazib beruvchisi talab qilinadi. Aslida, ADO.NET-da
ma’lumotlar etkazib beruvchisi orqali siz ma’lumotlar bazasi bilan o‘zaro aloqada
bo‘lasiz. Bundan tashqari, ADO.NET-dagi har bir ma’lumot manbai uchun yuqorida
ko‘rsatilgan sinflarning aniq bajarilishini aniqlaydigan provayder bo‘lishi mumkin.
Odatiy bo‘lib, ADO.NET-da quyidagi o‘rnatilgan provayderlar mavjud:
• MS SQL Server uchun provayder
• OLE DB uchun Provayder (MS SQL Serverning eski versiyalariga, shuningdek,
Access, DB2, MySQL va Oracle ma’lumotlar bazalariga kirishni ta’minlaydi)
• ODBC uchun provayder (Provayderlar mavjud bo‘lmagan ma’lumotlar
manbalari uchun provayder)
• Oracle uchun provayder
• Provayder EntityClient. ORM Entity Framework Technology uchun ma’lumot
etkazib beruvchi
• SQL Server Compact 4.0 uchun provayder
O‘rnatilgan ushbu provayderlardan tashqari, turli xil ma’lumotlar bazalari uchun
mo‘ljallangan, masalan, MySQL uchun ko‘plab boshqa ma’lumotlar mavjud.
ADO.NET-da ishlatiladigan asosiy nomlar:
•System.Data: ADO.NET arxitekturasini amalga oshiradigan sinflar, interfeyslar,
delegatlarni belgilaydi
•System.Data.Common: barcha ADO.NET provayderlari uchun xos bo‘lgan
sinflarni o‘z ichiga oladi
•System.Data.Design: O‘z ma’lumotlar to‘plamlarini yaratishda foydalaniladigan
sinflarni belgilaydi.
11
•System.Data.Odbc: ODBC uchun ma’lumotlar etkazib beruvchisi funktsiyalarini
belgilaydi
•System.Data.OleDb: OLE DB uchun ma’lumotlar etkazib beruvchisi
funktsiyalarini belgilaydi
•System.Data.Sql: SQL Serverga tegishli funktsiyalarni qo‘llab-quvvatlaydigan
sinflarni saqlaydi
•System.Data.OracleClient: provayderning Oracle ma’lumotlar bazalari uchun
funktsional imkoniyatlarini belgilaydi
•System.Data.SqlClient: MS SQL Server ma’lumotlar bazalari uchun
provayderning funktsional imkoniyatlarini belgilaydi
•System.Data.SqlServerCe: SQL Server Compact 4.0 uchun provayderning
funktsional imkoniyatlarini belgilaydi
•System.Data.SqlTypes: MS SQL Servera ma’lumotlari turlari uchun sinflar
mavjud
•Microsoft.SqlServer.Server: SQL Serverning o‘zaro ishlashi uchun
komponentlarni va umumiy tilning ishlash vaqtini saqlaydi.
12
Accessing Data With ADO.NET DataSet, DataTable, DataRow, DataColumn va
boshqa bir qator sinflar nogiron darajani tashkil etadi, chunki DataSet-da ma’lumotlarni
olgandan so‘ng, biz ulanish o‘rnatiladimi yoki yo‘qligidan qat’iy nazar ushbu
ma’lumotlar bilan ishlashimiz mumkin. Ya’ni, ma’lumotlar bazasidan ma’lumotlarni
olgandan so‘ng, dastur ma’lumot manbasidan uzilishi mumkin.
13
II-BOB. TASHKILOT XODIMLARINI MA’LUMOTLARIMI JAMLOVCHI
TIZIM
2.1. Dasturiy ta’minotni ishlab chiqish
Dasturiy ta’minotni ishlab chiqishdan avval uni albatta loyihalab olish zarur, uning
tashqi interfeysi qulay bo‘lishi hodim uchun juda muhim hisoblanadi.Dastur to‘qqizta
jadvaldan iborat, ular:
1.Admin
2.Hisobchi
3.Ishchi
4.Lavozim
5.Oylik
14
2-rasm.Jadvallarning bir-biri bilan bog‘lanishiga misol
Dastur taqdimot standartlari yordamida ma’lumotlar bazasini qattiq diskda saqlashi
kerak.
Samaradorlik: dastur operatsion tizimda ishlashi va dasturning maqsadi hamda mo-
hiyatiga muvofiq, apparat resurslariga kichik talablar qo‘yishi kerak.Dastur intuitiv
hodim uchun qulay grafik interfeysga ega bo‘lishi kerak.
Dasturning barqaror ishlashi kafolatlangan kompyuterning minimal texnik
xususiyatlari:
Kompyuter protsessor: Pentium 4 toifali protsessorli kompyuter;
Xotira: 512mb;
Monitor: 640x480 piksel yoki undan ortiq piksellar soniga ega monitor;
Operatsion tizim: WindowsXP operatsion tizimi, Microsoft .NET Framework Run-
time v4.0 talab qilinadi;
Ma’lumotlar bazasi hajmi bilan belgilanadigan qattiq diskda bo‘sh disk maydoni
mavjudligi.
Tashqi funktsiyalari:
15
Valyuta ayirboshlaganlarning ma’lumotlarini ma’lumotlar bazasiga qo‘shish;
Komissiya miqdorini o‘zgartirish;
Sana boyicha ma’lumot qidirish;
Valyuta kurslarini Markaziy Bank API sidan foydalangan holda tanlangan valyuta
qiymatni olish;
Hodimlarni qo‘shish, tahrirlash, login parolini o‘zgartirish;
Kritik holatlar:
jurnal ma’lumotlar bazasini saqlashda qattiq diskda bo‘sh joy etishmasligi. Fayl
tizimidagi har qanday operatsiyani bekor qilish kerak;
Windows-ni o‘chirish. Bunday holda, dastur o‘z ishini tugatishi kerak.
Ushbu dasturiy vosita bir-biri bilan o‘zaro ta’sir qiluvchi quyi tizimlarga bo‘linishi
mumkin.
Interfeys quyi tizimi dasturning hodim interfeysini amalga oshiradi. Ma’lumotlar
bazasi jadval ko‘rinishida №, Joylar, Erkin va Rezidentlar ustunlari bilan ma’lumotlarni
saralash va belgilangan mezon bo‘yicha qidirish imkoniyatiga ega.
Ma’lumotlar bazasi bilan ishlash quyi tizimi ma’lumotlar bazasini boshqarishga
kirishni ta’minlaydi:
Ma’lumotlar bazasi yozuvlarini yaratish, o‘chirish, o‘zgartirish;
16
2.3 Dasturning ishlash tartibi
17
6-rasm.Ishchi registratsiyadan o`tishi
18
XULOSA
Men bu kurs ishi davomida C# dasturlash tili haqida 2-yil davomida olgan
bilimlarimni mustahkamlab, bilmagan joylarimni mustaqil ravishda o‘rganib o‘z bilim va
ko‘nikmalarimni oshirdim.
Mening kurs ishim oliy ta’lim sohasida ya’ni “Tashkilotla tma’lumotlarini
jamlovchi ” tizimi edi. Hozirgi, ya’ni XXI asrning eng asosoiy masalaridan biri bu har bir
sohaga raqamli iqtisodiyotni jalb etish. Ya’ni har bir soha avtomatlashtirilgan tizimga
o‘tishi, bu o‘sha sohaning rivojlanishiga, va sifatli xizmat, mahsulot berishga katta turtki
bo‘ladi. Hozirgi kun talabi hamma jarayon,xizmatlar va boshqalar onlayn shaklda, tez,
ishonchli va xavfsiz bo‘lishidir. Istemolchilar biror xizmat yoki mahsulot uchun ko‘plab
navbatlarda turishini, vaqtini yo‘qotishini istashmay. Shuning uchun har bir sohani
avtomatlashtirish jamiyat rivojiga tasir qiladi. Men kurs ishimda shu masalalarni inobatga
olib tashkilot xodimlarini ma’lumotni jamlovchi tizimini avtomatlashtirishga harakat
qildim.
Kurs ishini qilish davomida o‘z kamchiliklarimni bilib oldim, hamda ularni
to‘ldirishga harakat qildim. Misol uchun men ma’lumotlar bazasi bilan ishlashni oldin
murakkab darajada bilmasdim. Lekin kurs ishi davomida bazada ma’lumotlar bo‘yicha
ishlash bilimlarimni mustahkamlab oldim. Va bu menga kelajakda albatta kerak bo‘ladi.
Sababi har qanday platforma yaxshi va eng muhimi tez ishlashi uchun, bu platforma
ma’lumotlarni tez qayta ishlashi kerak. Bu degani, platformani ma’lumotlar bazasi bilan
bog‘liq joylarini eng ijobiy usllar bilan ishlab chiqish kerak. Biz bu uchun SQL tilida
yetuk mutahhasis bo‘lishimiz kerak. Kurs ishim davomida SQL ning o‘zim bilmagan
funksiyalarini o‘rganib, o‘z bilimimni oshirdim.
19
FOYDALANILGANADABIYOTLAR
1. СергейТепляков. Паттерныпроектированияна платформе .NET2..
3. Date C.J. An Introduction to Database Systems (8 th edition). Addison-Wesley:
2003. – P. 1034.
4. Основы систем баз данных: Учебник. / Е. Ж. Айтхожаева – Алматы:
КазНИТУ имени К. И. Сатпаева, 2016. – 279 с. Ил. 38. Табл. 8. Библиогр. –53 назв.
5. Андон Ф., Резниченко В. Язык запросов SQL: Учеб. курс. – СПб.: Питер,
2006. – 416 с.
6. Бейли Л. Изучаем SQL /Пер. с англ. – СПб.: Питер, 2012. – 573 с.
7.https://xabar.uz/uz/talim/talim-tizimini-isloh-qilishni-nimadan-boshlash-kerak
8.https://tdi.uz/activity/monitoring/
9. Unity и C#. Геймдев от идеи до реализации | Гибсон Бонд Гибсон Бонд
Джереми
10. Ицик Бен-Ган. Microsoft SQL Server 2012. Основы T-SQL
11. Дж. Скит. C# для профессионалов. Тонкости программирования
12. JoeDuffy. ConcurrentProgrammingonWindows
13. ЭрикФрименидр. HeadFirst. Паттерны проектирования
14. Сергей Тепляков. Паттерны проектирования на платформе .NET
Internet manbalari
1. https://metanit.com
2. https://www.youtube.com
3. https://www.w3schools.com/cs/index.php
4. https://www.w3schools.com/mysql/default.asp
20
ILOVA
Form1
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace XodimHujjatlari
{
public partial class Kirish : Form
{
SqlConnection connection = new SqlConnection(@"Data Source=(LocalDB)\
MSSQLLocalDB;AttachDbFilename=C:\Users\ProBook\source\repos\XodimHujjatlari\XodimHujjatlari\
Database1.mdf;Integrated Security=True");
int k;
Form f;
string comand;
public Kirish(int i,Form f)
{
this.k = i;
this.f = f;
InitializeComponent();
}
21
case 3:
{
comand = $"select * from Hisobchi where login=@login and parol=@parol";
panel2.Visible = true;
panel1.Visible = false;
label1.Visible = true;
break;
}
}
}
}
else
{
MessageBox.Show("Login yoki parolingiz xato");
textBox4.Text = textBox3.Text = "";
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
connection.Close();
}
}
22
}
try
{
SqlCommand cmd = connection.CreateCommand();
cmd.CommandType = CommandType.Text;
if(k==3)
cmd.CommandText = $"select * from Worker where pasport='{textBox2.Text}' and
lavozim='Hisobchi'";
else
cmd.CommandText = $"select * from Worker where pasport='{textBox2.Text}'";
DataTable table = new DataTable();
connection.Open();
table.Load(cmd.ExecuteReader());
connection.Close();
if (table.Rows.Count > 0)
{
if(k==2)
cmd.CommandText = $"select * from Ishchi where id={table.Rows[0][0]}";
else
cmd.CommandText = $"select * from Hisobchi where id={table.Rows[0][0]}";
DataTable table1 = new DataTable();
connection.Open();
table1.Load(cmd.ExecuteReader());
connection.Close();
if (table1.Rows.Count < 1)
{
this.Close();
f.Hide();
if(k==2)
new Regstr(int.Parse(table.Rows[0][0].ToString())).Show();
if (k == 3)
new Ishchi (int.Parse(table.Rows[0][0].ToString()), table.Rows[0]
[1].ToString()).Show();
}
else
{
MessageBox.Show("Bu passportdan oldin ro'yxatdan o'tgan");
}
23
}
else
{
MessageBox.Show("Siz ro'yxatdan o'tmagansiz");
textBox2.Text= "";
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
connection.Close();
}
}
}
}
Form2
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;
using System.IO;
using System.Windows.Forms;
namespace XodimHujjatlari
{
public partial class Form2 : Form
{
int id;
string admin;
SqlConnection connection = new SqlConnection(@"Data Source=(LocalDB)\
MSSQLLocalDB;AttachDbFilename=C:\Users\ProBook\source\repos\XodimHujjatlari\XodimHujjatlari\
Database1.mdf;Integrated Security=True");
DataTable table = new DataTable();
24
try
{
label5.Text = DateTime.Now.ToString("dd/MM/yyyy");
SqlCommand cmd = connection.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = $"select i.id, i.familya+i.ism, w.pasport, i.tel, i.jins, w.lavozim,
w.kelgan, " +
$"i.rasm " +
$"from Hisobchi i inner join Worker w on w.id=i.id where i.id={id}";
connection.Open();
this.table.Load(cmd.ExecuteReader());
connection.Close();
labelid.Text = table.Rows[0][0].ToString();
labelfish.Text = table.Rows[0][1].ToString();
labelps.Text = table.Rows[0][2].ToString();
labeltel.Text = table.Rows[0][3].ToString();
labeljins.Text = table.Rows[0][4].ToString();
labellav.Text = table.Rows[0][5].ToString();
labelish.Text = table.Rows[0][6].ToString();
Byte[] oldImg = (Byte[])(table.Rows[0][7]);
MemoryStream stream = new MemoryStream(oldImg);
pictureBox1.Image = Image.FromStream(stream);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
connection.Close();
}
}
25
using System.Data.SqlClient;
using System.IO;
namespace XodimHujjatlari
{
public partial class Ishchi : Form
{
string img = "",pas;
int id;
SqlConnection connection = new SqlConnection(@"Data Source=(LocalDB)\
MSSQLLocalDB;AttachDbFilename=C:\Users\ProBook\source\repos\XodimHujjatlari\XodimHujjatlari\
Database1.mdf;Integrated Security=True");
26
cmd.CommandText = $"insert into
Hisobchi(id,login,parol,ism,familya,tel,jins,rasm) " +
$"values ({id}, '{textBox2.Text}', '{textBox4.Text}', '{textBox1.Text}',
'{textBox3.Text}','{maskedTextBox1.Text}','{jins}', @fayl)";
SqlParameter p2 = new SqlParameter("@fayl", SqlDbType.VarBinary, rasm.Length,
ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Current, rasm);
cmd.Parameters.Add(p2);
connection.Open();
cmd.ExecuteNonQuery();
connection.Close();
MessageBox.Show("Muavfaqiyatli ro'yxatdan o'tdingiz");
textBox1.Text = textBox2.Text = textBox3.Text = textBox4.Text = textBox5.Text =
textBox6.Text = maskedTextBox1.Text = img = "";
this.Close();
new Bosh().Show();
}
else
{
MessageBox.Show("Bunday logindan allaqochon ro'yxatdan o'tilgan");
textBox5.Text = "";
}
}
else
{
MessageBox.Show("Parollar mos kelmayabdi");
textBox6.Text = textBox4.Text = "";
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
connection.Close();
}
}
27
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
}
Malumot
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;
using System.IO;
using System.Drawing.Printing;
using System.Windows.Forms;
namespace XodimHujjatlari
{
public partial class Malumot : Form
{
int id;
string admin;
SqlConnection connection = new SqlConnection(@"Data Source=(LocalDB)\
MSSQLLocalDB;AttachDbFilename=C:\Users\ProBook\source\repos\XodimHujjatlari\XodimHujjatlari\
Database1.mdf;Integrated Security=True");
DataTable table = new DataTable();
public Malumot(int id,String admin)
{
this.id = id;
this.admin = admin;
InitializeComponent();
}
28
$"i.mehnat, i.mformat, i.fayl, i.format " +
$"from Ishchi i inner join Worker w on w.id=i.id where i.id={id}";
connection.Open();
this.table.Load(cmd.ExecuteReader());
connection.Close();
label1.Text = table.Rows[0][1] + " ma'lumotlari";
labelid.Text = table.Rows[0][0].ToString();
labelfish.Text = table.Rows[0][1].ToString();
labelps.Text = table.Rows[0][2].ToString();
labeltel.Text = table.Rows[0][3].ToString();
labeljins.Text = table.Rows[0][4].ToString();
labeldate.Text = table.Rows[0][5].ToString();
labelmanzil.Text = table.Rows[0][6].ToString();
labellav.Text = table.Rows[0][7].ToString();
labelish.Text = table.Rows[0][8].ToString();
DataTable oylik = new DataTable();
cmd.CommandText = $"select o.olgavVaqt, o.kun,o.miqdor from oylik o inner join Ishchi i on
i.id=o.ishchiId where i.id={id}";
connection.Open();
oylik.Load(cmd.ExecuteReader());
connection.Close();
for (int i=0; i<oylik.Rows.Count; i++)
{
Label l1 = new Label();
l1.Text = "Oylik olgan sana:";
l1.Font = label20.Font;
l1.Location = new Point(345, 500+(i*50));
l1.AutoSize = label20.AutoSize;
panel1.Controls.Add(l1);
Label l2 = new Label();
l2.Text = oylik.Rows[i][0].ToString();
l2.Font = label18.Font;
l2.Location = new Point(500, 500+i*50);
l2.ForeColor = Color.Blue;
l2.AutoSize = label18.AutoSize;
panel1.Controls.Add(l2);
Label l3 = new Label();
l3.Text = "Necha kun:";
l3.Font = label20.Font;
l3.Location = new Point(720, 500 + (i * 50));
l3.AutoSize = label20.AutoSize;
panel1.Controls.Add(l3);
Label l4 = new Label();
l4.Text = oylik.Rows[i][1].ToString();
l4.Font = label18.Font;
l4.Location = new Point(820, 500 + i * 50);
l4.ForeColor = Color.Blue;
l4.AutoSize = label18.AutoSize;
29
panel1.Controls.Add(l4);
Label l5 = new Label();
l5.Text = "Oylik miqdori:";
l5.Font = label20.Font;
l5.Location = new Point(920, 500 + (i * 50));
l5.AutoSize = label20.AutoSize;
panel1.Controls.Add(l5);
Label l6 = new Label();
l6.Text = oylik.Rows[i][2].ToString();
l6.Font = label18.Font;
l6.Location = new Point(1042, 500 + i * 50);
l6.ForeColor = Color.Blue;
l6.AutoSize = label18.AutoSize;
panel1.Controls.Add(l6);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
connection.Close();
}
30
var newFileName = name + format;
File.WriteAllBytes(newFileName, fayl);
System.Diagnostics.Process.Start(newFileName);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
Bitmap bmp;
private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
Rectangle reg = e.PageBounds;
e.Graphics.DrawImage(bmp, (reg.Width / 2) - (this.panel1.Width / 2),
this.panel1.Location.Y+50);
}
31
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;
using System.Windows.Forms;
namespace XodimHujjatlari
{
public partial class oylik : Form
{
int id, ishId;
bool ishchi = true;
DataTable qiymat;
SqlConnection connection = new SqlConnection(@"Data Source=(LocalDB)\
MSSQLLocalDB;AttachDbFilename=C:\Users\ProBook\source\repos\XodimHujjatlari\XodimHujjatlari\
Database1.mdf;Integrated Security=True");
public oylik(int id)
{
this.id = id;
InitializeComponent();
}
32
private void button1_Click(object sender, EventArgs e)
{
try
{
ishchi = true;
SqlCommand cmd = connection.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = $"select i.id,i.ism+i.familya as 'Ism familiya', i.tel as 'telefon
nomer',lavozim as 'Lavozimi' from Ishchi i inner join Worker w on i.id=w.id ";
DataTable data = new DataTable();
connection.Open();
data.Load(cmd.ExecuteReader());
connection.Close();
dataGridView1.DataSource = data;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
connection.Close();
}
}
33
try
{
SqlCommand cmd = connection.CreateCommand();
cmd.CommandType = CommandType.Text;
if (ishchi)
{
cmd.CommandText = $"select i.id,i.ism+i.familya as 'Ism familiya', i.tel as 'telefon
nomer',lavozim as 'Lavozimi' from Ishchi i inner join Worker w on i.id=w.id " +
$"where (i.ism like '%{textBox2.Text}' or i.ism like '%{textBox2.Text}%' or i.ism
like '{textBox2.Text}%' or i.familya like '%{textBox2.Text}' or i.familya like '%{textBox2.Text}%' or i.familya
like '{textBox2.Text}%')";
}
else
cmd.CommandText = $"select i.id,i.ism+i.familya as 'Ism familiya', o.olgavVaqt as
'Oxirgi oylik sanasi',o.kun as 'Ish kuni', o.miqdor as 'Oylik miqdori(so`m)', h.familya+h.ism as 'Oylik chiqargan
hisobchi' from oylik o inner join Ishchi i on i.id=ishchiId inner join Hisobchi h on h.id=o.hisobchiId " +
$"where (i.ism like '%{textBox2.Text}' or i.ism like '%{textBox2.Text}%' or i.ism
like '{textBox2.Text}%' or i.familya like '%{textBox2.Text}' or i.familya like '%{textBox2.Text}%' or i.familya
like '{textBox2.Text}%')";
DataTable data = new DataTable();
connection.Open();
data.Load(cmd.ExecuteReader());
connection.Close();
dataGridView1.DataSource = data;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
connection.Close();
}
}
try
{
if (e.RowIndex != -1 && e.RowIndex != dataGridView1.Rows.Count - 1 && ishchi)
{
ishId =int.Parse( dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString());
textBox6.Text = dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString();
ishchi = false;
SqlCommand cmd = connection.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = $"select i.id,i.ism+i.familya as 'Ism familiya', o.olgavVaqt as
'Oxirgi oylik sanasi',o.kun as 'Ish kuni', o.miqdor as 'Oylik miqdori(so`m)', h.familya+h.ism as 'Oylik chiqargan
34
hisobchi' from oylik o inner join Ishchi i on i.id=ishchiId inner join Hisobchi h on h.id=o.hisobchiId where
i.id={dataGridView1.Rows[e.RowIndex].Cells[0].Value}";
DataTable data = new DataTable();
connection.Open();
data.Load(cmd.ExecuteReader());
connection.Close();
dataGridView1.DataSource = data;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
connection.Close();
}
}
35