Buxoro davlat universiteti - bet 28

f ) shartlarni o'zaro almashtirish .
Hozirgacha biz jadvaldan ma’lumotlami tanlab olishda faqat bitta shartdan foydalandik.SQL tili bitta iborada ikki yoki undan ortiq shartlarning qo'llanishiga imkon beradi. Bu holatda shartlar bir-biridan AND yoki OR biriktiruvchi kreditlar yordamida ajratiladi. Quyida biz shartlarni almashtirishni qo'llash imkoniyatini ko‘rsatadigan ikkita misol keltiramiz.
1-misol. Factory jadvalidan worker bo‘limiga tegishli va staji 10 yildan ortiq bo‘lgan xodimlarning ro'yxatini tanlash.
Select Name, Los, Dept
from factory
where Dept—worker’ and Los> 10;
Natijada ekranda quyidagilar hosil bo'ladi:
Name Los Dept
Erkin J. 17 worker
PauL T. 1 2 worker
2-misol. Factory jadvalidan 01.01.1960 dan keyin tug'ilgan, oylik maoshi 2050 dan kam yoki 2450 dan ortiq, telefon raqami bor xodimlaming ro'yxati, tug'ilgan sanasi, oylik maoshi va telefon raqamlarini tanlash.
Select Name, Dob, Salary, Telno
from factory
where not between 2050 and 2450 and Dob>01.01.1960;
Arifmetik operatsiyalar.SQL faqat tanlashni emas, balki ma’lumotlar bilan arifmetik amallarni bajarishni ham ta’minlaydi.
Masalan:
Select Name, Salary*1.2
from factory
where Dept= ’service’;
Natijada ekranda quyidagilar hosil bo'ladi:
Name Salary* 1.2
Bianca A. 2340
Jane S. 2280
Agar oxirgi ifodada shart bo'lmasa, EHM barcha xodimlarning oylik maoshini 20% ga oshiradi. Shuni aytib o'tish kerakki, factory jadvalining o'zida Bianca A. va Jane S. ning oylik maoshi o'zgarishsiz qoladi. Jadval ma’lumotlarini o'zgartirish uchun maxsus buyruqlar kerak, ular haqida keyinroq suhbatlashamiz. Ma’lumotlar bazasi bilan ishlaganda shu kundagi sana va vaqtni bilish kerak. Shu maqsadda SQLda quyidagi operatorlar nazarda tutilgan.
SYSTIME — soat, minut, sekund formatida shu kungi vaqtni belgilaydi.
SYS DATE — kun, oy, yil formatida shu kungi sanani belgilaydi.
Misol:
Select Name, Sysdate,systime
from factory
where Salary = 2700 or Salary =3000
Natijada quyidagiga ega bo'lamiz.
Name Sysdate Systime
Rustam B. 14.01.1997. 14.02.27.
Shuningdek, sysdate va systime operatorlari bilan arifmetik operasiyalarni bajarish mumkin.
Masalan:
Select Name, Sysdate+31
from factory
where Name like 'Rustam%';
Berilgan buyruq asosida, shu kungi sanaga EHM 31 kunni qo‘shib qo‘yadi.
Natijada quyidagilar hosil bo'ladi:
Name Sysdate+31
Rustam B. 14.02.97.
SQL sana va vaqt bilan bo'lgan arifmetik operatsiyalardagi literallar kabi, sana va vaqtning har xil konstantalarini qo'llashga imkon beradi. Shu maqsadda SQL ga yil(lar), oy(lar), kun(lar), soat(lar), minut(lar), sekund(lar), mikrosekund(lar), YEAR(S), month(S), Day(S), HOUR(S), MINUTE(S), SECOND(S), MICROSECUND(S) lar kiritiladi.
Quyidagi misol mazkur konstantalarni qo'llash usulini ko'rsatadi.
Select Name, Dob, Dob+5 years
from factory
where Name like ’Dob%';
Displey ekranida quyidagilar hosil bo'ladi:
Name Dob Dob+5 years
DonT. 11.04.1966 11.04.1971
Donovan A. 14.05.196714.05.1972
II.BOB. Universitet informatsion tizimida fan dasturlardagi o’quv adabiyotlar monitoringi modulini yaratish.
2.1. O’quv adabiyotlar monitoringi modulini yaratish spetsifikatsiyasi.
O’quv adabiyotlar monitoringi bu talim muassasasidagi o’qituvchi va talabalarning adabiyot qo’shish va yuklab olish jarayonini o’z ichiga oladi.
Bu monitoringda o’qituvchining adabiyotlarni istalgan joydan va istalgan vaqtda qo’shish imkoniyatini yaratsa, talabalarga esa bu adabiyotlardan istalgan joydan va istalgan vaqtda foydalanish imkoniyatini yaratadi.
Adabiyotlar nomi va muallifi ham keltiriladi, ularning qaysi fanga tegishli ekanligi, bu fan esa qaysi mutaxasislikka kirishi dasturimizda ko’zda tutilgan.
Har bir o’qituvchi o’ziga biriktirilgan fan yuzasidan o’quv adabiyotlarni qo’shgan bo’lsa, u holda universitet bazasidan bu adabiyotlar o’rin olgan bo’ladi. Talabalar tizimga murojaat qilganida bu adabiyotlarning ro’yxati ularga ko’rinadi. Demak, talabalar va o’qituvchilar oynalari o’zaro bog’langan bo’ladi. Bu oynalarga bosh menyudan kirish mumkin bo’ladi.
Tizim Universitet bazasiga ulangan va bu tizimga har bir foydalanuvchi o’z login va paroli bilan kirganida shu foydalanuvchiga tegishli bo’lgan fanlar va adabiyotlar hosil bo’ladi.
2.2. O’quv adabiyotlar monitoringi modulinining dasturi loyihasi.
Biz yaratgan o’quv adabiyotlar monitoringi dasturiy tizimining loyihasi quyidagilardan iborat:
- Oldindan mavjud tizimga o’qituvchi, talaba, fan, mutaxasislik va adabiyot haqidagi ma’lumotlar oldindan kiritib qo’yiladi. Bu oldindan kiritilgan ma’lumotlar shu ma’lumotlarni kiritishga mas’ul xodimlar tomonidan kiritiladi.
- Bu kiritilgan ma’lumotlarni o’quv bo’limi ko’rib chiqadi hamda tasdiqlaydi.
- Bu tayyor ma’lumotlar va yaratilgan rollar asosida o’qituvchilar tizimga o’zlariga tegishli fanlarga oid o’quv adabiyotlarni kiritish imkoniyatiga ega bo’ladilar. Kiritilgan o’quv adabiyotlar ichidan kerak bo’lmaganlarini o’chirish imkoniyati ham mavjud bo’ladi.
- O’quv adabiyotlarniolish uchun talabalar o’z parol va loginlari bilan tizimga kirib bu adabiyot(adabiyot,o’quv qo’llanma, uslubiy qo’llanma)lardan foydalana oladilar.
O’qituvchi va talabalarning tizimga kirishlari login va parol orqali himoyalab qo’yilgan bo’ladi.
O'qituvchi adabiyot qo'shadi:
namespace adabiyotlarMyBMI.Uqituvchi{
public partial class addAdabiyot : System.Web.UI.Page {
SqlConnection cnn;
int fan, uqt, fan1;
protected void Page_Load(object sender, EventArgs e) {
fan = int.Parse(Request.QueryString["fan"].ToString());
uqt = int.Parse(Request.QueryString["uqt"].ToString());
cnn = new SqlConnection(ConfigurationManager.ConnectionStrings["uquv-2ConnectionString"].ConnectionString);
cnn.Open();
SqlCommand cmd = new SqlCommand() {
Connection = cnn,
CommandText = "select fan from mut_fanlari where id=" + fan,
CommandType = CommandType.Text };
SqlDataReader str = cmd.ExecuteReader();
if (str.HasRows) {
str.Read();
fan1 = int.Parse(str["fan"].ToString()); }
str.Close();
cnn.Close(); }
protected void Button1_Click(object sender, EventArgs e) {
string fileName = "";
HttpPostedFile postedFile = FileUpload1.PostedFile;
if (postedFile.ContentLength > 0) {
fileName = System.IO.Path.GetFileName(postedFile.FileName);
postedFile.SaveAs(Server.MapPath("\\kitoblar\\" + fileName)); }
cnn.Open();
SqlCommand cmd = new SqlCommand() {
Connection = cnn,
CommandText = "insert into adabiyotlar(tili,turi,nomi,fan_id,uqituvchi,faylname,avtor) values(" +
DropDownTili.SelectedValue + "," + DropDownTuri.SelectedValue + ",'" + txtName.Text + "'," +
fan1 + "," + uqt + ",'" + fileName + "','" + txtName0.Text + "')",
CommandType = CommandType.Text };
cmd.ExecuteNonQuery();
cnn.Close();
Response.Redirect("Default.aspx?uqt=" + Session["uqt"]); } }}
2.2.1. ER modeli.
2.1-chizma. Ma`lumotlarining ER modeli.
2.2.2. Foydalanuvchi grafik interfeysi.
Dasturga kirilganda foydalanuvchi oynasi ochiladi. Bu oynadan foydalanuvchi o’zi uchun kerakli bo’limni tanlaydi: agar bu foydalanuvchi talaba bo’ladigan bo’lsa, u “talabalar” ni, o’qituvchi bo’lsa, u holda “o’qituvchilar” ni tanlaydi va keyingi oynaga o’tiladi.
2.2 – chizma. Foydalanuvchilar oynasi.
2.3 – chizma. O’qituvchilar oynasiga kirish.
Agar foydalanuvchi o’qituvchi bo’lsa shu oyna orqali o’z bo’limiga o’tadi. Bu oynada o’qituvchi o’z login va parolini kiritadi va “kirish” tugmasi bosish orqali keyingi oynaga kiriladi. Foydalanuvchi uchun “chiqish” tugmasi ham berilgan bo’lib, bu tugma bosilganda 2.2 – chizmadagi oynaga qaytiladi.
2.4 – chizma. O’qituvchining o’z login va parolini kiritish jarayoni.
Keyingi oyna o’qituvchining o’ziga tegishli bo’lgan oyna bo’lib, unda o’qituvchiga biriktirilgan fanlar yacheykasidan kerakli fan tanlanadiva“ok” tugmasi bosilganda bu fanga oid barcha adabiyotlar chiqadi.
2.5 – chizma. O’qituvchi oynasining ko’rinishi.
Oynada mavjud adabiyotlarni o’chirish va yuklab olish mumkin. Qo’shilgan adabiyotlarning ro’yxati mavjud. Bu ro’yxat “id”, “nomi”, “muallif” ustunlaridan iborat. Adabiyot qo’shish uchun “yangi qo’shish” tugmasi bosiladi va adabiyot qo’shish oynasiga murojaat bo’ladi.
2.6 – chizma. Adabiyot kiritish oynasi..
Bu oynadan kerakli adabiyotning nomini, muallifini, tilini, turini tanlaymiz va “выберитефайл”tugmasi bosiladi va yuklash jarayonini boshlaymiz.
2.7 – chizma. Adabiyotni yuklash.
Bu oynadan “открыть” tugmasi bosiladi vaadabiyot kiritish oynasidagi saqlash tugmasi bosiladi.
2.8 – chizma. Saqlash jarayoni.
2.9 – chizma. Adabiyotning ro’yxatga qo’shilishi.
2.10 – chizma. Talaba oynasiga kirish.
2.11 – chizma. Talabalarning tizimga kirish jarayoni.
Talabalar tizimga kirish uchun login va parolini kiritishi kerak. Tizimga kirilganda hosil bo’ladigan oynada fanlar ro’yxati turadi. Kerakli fan uchun “adabiyotlar”ni bosganimizda shu fanga oid barcha kiritilgan adabiyotlarni chiqarib beradi.
2.12 – chizma. Talabalar oynasining ko’rinishi.
2.13 – chizma. Yuklab olish jarayoni.
Talaba o’zi uchun kerakli bo’lgan adabiyotni topganidan so’ng, o’ng tomondagi “yuklash” tugmasi bosiladi. Shuning bilan dasturning ishi tugaydi, foydalanuvchi yana boshqa adabiyotlarni yuklab olishi mumkin.
2.2.3. Asosiy modullari.
O’quv adabiyotlar monitoringi2 ta asosiy moduldan tashkil topgan bular:
- O’qituvchi;
- Talaba;
Talaba adabiyotlarni ko'radi va yuklab oladi:
namespace adabiyotlarMyBMI.Talaba{
public partial class Adabiyotlar : System.Web.UI.Page {
SqlConnection cnn;
I nt fan1, fan;
protected void Page_Load(object sender, EventArgs e) {
fan = int.Parse(Request.QueryString["fan"]);
cnn = new SqlConnection(ConfigurationManager. ConnectionStrings["uquv-2ConnectionString"]. ConnectionString);
if (!IsPostBack) {
filtr(); } }
private void filtr() {
cnn.Open();
SqlCommand cmd = new SqlCommand() {
Connection = cnn,
CommandText = "select fan from mut_fanlari where id=" + fan,
CommandType = CommandType.Text };
SqlDataReader str = cmd.ExecuteReader();
if (str.HasRows) {
str.Read();
fan1 = int.Parse(str["fan"].ToString()); }
str.Close();
cnn.Close();
SqlDataSource1.SelectCommand = "SELECT [id], [tili], [turi], (select nomi from adab_turi where adabiyotlar.turi=id) as turi_nomi, [nomi], [fan_id], [faylName], [uqituvchi], [avtor] FROM [adabiyotlar] where fan_id=" + fan1;
SqlDataSource1.DataBind();
GridView1.DataBind();
cnn.Open();
cmd.CommandText = "select fan_nomi from fanlar where id=" + fan1;
SqlDataReader str1 = cmd.ExecuteReader();
if (str1.HasRows) {
if(str1.Read())
Label1.Text = str1["fan_nomi"].ToString() + " fanidan adabiyotlar."; }
str1.Close();
cnn.Close(); }
protected void ImageButton1_Click(object sender, ImageClickEventArgs e) {
using (GridViewRow row = (GridViewRow) ((ImageButton)sender).Parent.Parent) {
Label lblFayl = (row.Cells[6].FindControl("faylName") as Label);
string fileName = lblFayl.Text;
string sssfile = fileName;
string fileExtension = sssfile.Substring(sssfile.LastIndexOf('.'));
// Set Response.ContentType
Response.ContentType = GetContentType(fileExtension);
// Append header
Response.AppendHeader("Content-Disposition", "attachment; filename=" + fileName);
// Write the file to the Response
Response.TransmitFile(Server.MapPath("~/kitoblar/" + fileName));
Response.End(); } }
private string GetContentType(string fileExtension){
if (string.IsNullOrEmpty(fileExtension))
return string.Empty;
string contentType = string.Empty;
switch (fileExtension) {
case ".htm":
case ".html":
contentType = "text/HTML";
break;
case ".txt":
contentType = "text/plain";
break;
case ".doc":
case ".rtf":
case ".docx":
contentType = "Application/msword";
break;
case ".xls":
case ".xlsx":
contentType = "Application/x-msexcel";
break;
case ".jpg":
case ".jpeg":
contentType = "image/jpeg";
break;
case ".gif":
contentType = "image/GIF";
break;
case ".pdf":
contentType = "application/pdf";
break; }
return contentType; } }
2.3. O’quv adabiyotlar monitoringi modulini yaratishni amalga oshirish
Dastur ASP texnologiyasi orqali yaratildi. Asosiy sahifaning ko’rinishi quyidagi kodda aniqlangan:
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true"
CodeBehind="addAdabiyot.aspx.cs" Inherits="adabiyotlarMyBMI.Uqituvchi.addAdabiyot" %>
|