public static List<Tematyka> WszystkieTematyki() { List<Tematyka> lista = new List<Tematyka>(); //Tworzymy obiekt List<Tematyka> BazaSQLite baza = new BazaSQLite(); //Pomocnicza klasa zawieraj¹ca metodê GetDataTable DataTable dt = new DataTable(); //Metoda przyjmuj¹ca zapytanie SELECT w String i zwracaj¹ca DataTable dt = baza.GetDataTable("select o.id_tematyki, o.nazwa from Tematyki as o"); foreach (DataRow row in dt.Rows) //Iterujemy po ka¿dym wierszu w DataTable { Tematyka tematyka = new Tematyka(); //Tworzymy obiekt do którego bedziemy przypisywaæ wartoœci z DataRow tematyka.Id = Convert.ToInt32(row["id_tematyki"]); tematyka.Nazwa = row["nazwa"].ToString(); lista.Add(tematyka); //Wrzucamy do listy } return lista; }
public static List<Czestotliwosc> WszystkieCzestotliwosci() { List<Czestotliwosc> lista = new List<Czestotliwosc>(); //Tworzymy obiekt List<Czestotliwosc> BazaSQLite baza = new BazaSQLite(); //Pomocnicza klasa zawieraj¹ca metodê GetDataTable DataTable dt = new DataTable(); //Metoda przyjmuj¹ca zapytanie SELECT w String i zwracaj¹ca DataTable dt = baza.GetDataTable("select o.id_czestotliwosc, o.nazwa from Czestotliwosc as o"); foreach (DataRow row in dt.Rows) //Iterujemy po ka¿dym wierszu w DataTable { Czestotliwosc czestotliwosc = new Czestotliwosc(); //Tworzymy obiekt do którego bedziemy przypisywaæ wartoœci z DataRow czestotliwosc.Id = Convert.ToInt32(row["id_czestotliwosc"]); czestotliwosc.Nazwa = row["nazwa"].ToString(); lista.Add(czestotliwosc); //Wrzucamy do listy } return lista; }
//Analiza stanu czytelnictwa private void WyswietlNajczesciejWybieraneButtonClick(object sender, EventArgs e) { this.najczesciejWybieraneGridView.Rows.Clear(); int minRok = 0, maxRok = 0, i = 0, liczbaMiejscWRankingu = 0; string plec = "", grupaWiekowa = "", zapytanie = "", minData = "", maxData = "", najczesciejWybierane = "", czestotliwosc = "", odbiorca = ""; DateTime dataPocz = this.dateTimePicker7.Value; DateTime dataKon = this.dateTimePicker8.Value; if (!string.IsNullOrEmpty(this.odbiorcaComboBox2.Text)) { Odbiorca odb = (Odbiorca)this.odbiorcaComboBox2.SelectedItem; odbiorca = odb.Id.ToString(); } if (!string.IsNullOrEmpty(this.czestotliwoscUkazywaniaSieComboBox.Text)) { Czestotliwosc czest = (Czestotliwosc)this.czestotliwoscUkazywaniaSieComboBox.SelectedItem; czestotliwosc = czest.Id.ToString(); } if (!string.IsNullOrEmpty(this.plecComboBox.Text)) { plec = this.plecComboBox.SelectedItem.ToString(); if (plec == "kobieta") { plec = "K"; } else { plec = "M"; } } if (!string.IsNullOrEmpty(this.grupaWiekowaComboBox.Text)) { grupaWiekowa = this.grupaWiekowaComboBox.SelectedItem.ToString(); string od_ = grupaWiekowa.Substring(0, 2), do_ = grupaWiekowa.Substring(5, 2); int biezacyRok = DateTime.Now.Year; //SQLite nie udostępnia funkcji do wyciągnięcia roku z przechowywanej w bazie daty int biezacyMiesiac = DateTime.Now.Month; int biezacyDzien = DateTime.Now.Day; minRok = biezacyRok - Convert.ToInt32(do_); maxRok = biezacyRok - Convert.ToInt32(od_); if (biezacyMiesiac >= 1 && biezacyMiesiac <= 9) { minData = string.Concat(minRok + "-" + "0" + biezacyMiesiac + "-" + biezacyDzien); maxData = string.Concat(maxRok + "-" + "0" + biezacyMiesiac + "-" + biezacyDzien); } else { minData = string.Concat(minRok + "-" + biezacyMiesiac + "-" + biezacyDzien); maxData = string.Concat(maxRok + "-" + biezacyMiesiac + "-" + biezacyDzien); } } if (string.IsNullOrEmpty(this.liczbaMiejscWRankinguComboBox.Text)) { MessageBox.Show("Proszę wybrać liczbę miejsc w rankingu.", "Analiza stanu czytelnictwa"); } else { liczbaMiejscWRankingu = Convert.ToInt32(this.liczbaMiejscWRankinguComboBox.SelectedItem.ToString()); } if (string.IsNullOrEmpty(najczesciejWybieraneComboBox.Text)) { MessageBox.Show("Proszę wybrać rodzaj zbiorów bibliotecznych.", "Analiza stanu czytelnictwa"); } else { najczesciejWybierane = this.najczesciejWybieraneComboBox.SelectedItem.ToString(); } List<NajczesciejWybierany> listaNajczesciejWybieranych = new List<NajczesciejWybierany>(); BazaSQLite baza = new BazaSQLite(); DataTable dt = new DataTable(); switch(najczesciejWybierane) { case "kategoria książek": zapytanie = String.Format("select kat.nazwa, count(kat.id_kategorii) as liczba from ((((Ksiazki as k inner join Karty_Egzemplarzy_Ksiazki as kek on k.id_ksiazki = kek.id_ksiazki) inner join Karty_Wypozyczen_Ksiazki as kwk on kek.id_egzemplarza = kwk.id_egzemplarza) inner join Kategorie as kat on k.id_kategorii = kat.id_kategorii) inner join Karty as kar on kwk.id_karty = kar.id_karty) inner join Czytelnicy as czyt on kar.id_czytelnika = czyt.id_czytelnika where {0} and {1} and {2} group by kat.id_kategorii order by liczba desc", (plec != "") ? "czyt.plec = \"" + plec + "\"" : "1=1", (grupaWiekowa != "") ? "czyt.data_urodzenia between date(\"" + minData + "\") and date(\"" + maxData + "\")" : "1=1", (dataPocz != null && dataKon != null) ? "kwk.data_wypozyczenia between date(\"" + dataPocz + "\") and date(\"" + dataKon + "\")" : "1=1"); break; case "tematyka czasopism": zapytanie = String.Format("select tem.nazwa, count(tem.id_tematyki) as liczba from ((((Czasopisma as cz inner join Karty_Egzemplarzy_Czasopisma as kec on cz.id_czasopisma = kec.id_czasopisma) inner join Karty_Wypozyczen_Czasopisma as kwc on kec.id_egzemplarza = kwc.id_egzemplarza) inner join Tematyki as tem on cz.id_tematyki = tem.id_tematyki) inner join Karty as kar on kwc.id_karty = kar.id_karty) inner join Czytelnicy as czyt on kar.id_czytelnika = czyt.id_czytelnika where {0} and {1} and {2} and {3} and {4} group by tem.id_tematyki order by liczba desc", (plec != "") ? "czyt.plec = \"" + plec + "\"" : "1=1", (grupaWiekowa != "") ? "czyt.data_urodzenia between date(\"" + minData + "\") and date(\"" + maxData + "\")" : "1=1", (czestotliwosc != "") ? "cz.id_czestotliwosc = \"" + czestotliwosc + "\"" : "1=1", (odbiorca != "") ? "cz.id_odbiorcy = \"" + odbiorca + "\"" : "1=1", (dataPocz != null && dataKon != null) ? "kwc.data_wypozyczenia between date(\"" + dataPocz + "\") and date(\"" + dataKon + "\")" : "1=1"); break; case "tytuł książki": zapytanie = String.Format("select k.tytul as nazwa, count(k.tytul) as liczba from (((Ksiazki as k inner join Karty_Egzemplarzy_Ksiazki as kek on k.id_ksiazki = kek.id_ksiazki) inner join Karty_Wypozyczen_Ksiazki as kwk on kek.id_egzemplarza = kwk.id_egzemplarza) inner join Karty as kar on kwk.id_karty = kar.id_karty) inner join Czytelnicy as czyt on kar.id_czytelnika = czyt.id_czytelnika where {0} and {1} and {2} group by k.tytul order by liczba desc", (plec != "") ? "czyt.plec = \"" + plec + "\"" : "1=1", (grupaWiekowa != "") ? "czyt.data_urodzenia between date(\"" + minData + "\") and date(\"" + maxData + "\")" : "1=1", (dataPocz != null && dataKon != null) ? "kwk.data_wypozyczenia between date(\"" + dataPocz + "\") and date(\"" + dataKon + "\")" : "1=1"); break; case "tytuł czasopisma": zapytanie = String.Format("select cz.tytul as nazwa, count(cz.tytul) as liczba from (((Czasopisma as cz inner join Karty_Egzemplarzy_Czasopisma as kec on cz.id_czasopisma = kec.id_czasopisma) inner join Karty_Wypozyczen_Czasopisma as kwc on kec.id_egzemplarza = kwc.id_egzemplarza) inner join Karty as kar on kwc.id_karty = kar.id_karty) inner join Czytelnicy as czyt on kar.id_czytelnika = czyt.id_czytelnika where {0} and {1} and {2} and {3} and {4} group by cz.tytul order by liczba desc", (plec != "") ? "czyt.plec = \"" + plec + "\"" : "1=1", (grupaWiekowa != "") ? "czyt.data_urodzenia between date(\"" + minData + "\") and date(\"" + maxData + "\")" : "1=1", (czestotliwosc != "") ? "cz.id_czestotliwosc = \"" + czestotliwosc + "\"" : "1=1", (odbiorca != "") ? "cz.id_odbiorcy = \"" + odbiorca + "\"" : "1=1", (dataPocz != null && dataKon != null) ? "kwc.data_wypozyczenia between date(\"" + dataPocz + "\") and date(\"" + dataKon + "\")" : "1=1"); break; } dt = baza.GetDataTable(zapytanie); foreach (DataRow row in dt.Rows) { if (i < liczbaMiejscWRankingu) { i++; NajczesciejWybierany wyb = new NajczesciejWybierany(); wyb.Pozycja = i; wyb.Nazwa = row["nazwa"].ToString(); wyb.LiczbaWypozyczen = Convert.ToInt32(row["liczba"]); listaNajczesciejWybieranych.Add(wyb); DataGridViewRow gridRow = this.najczesciejWybieraneGridView.RowTemplate.Clone() as DataGridViewRow; gridRow.CreateCells(this.najczesciejWybieraneGridView); gridRow.Cells[0].Value = wyb.Pozycja; gridRow.Cells[1].Value = wyb.Nazwa; gridRow.Cells[2].Value = wyb.LiczbaWypozyczen; this.najczesciejWybieraneGridView.Rows.Add(gridRow); } } //this.najczesciejWybieraneGridView.DataSource = listaNajczesciejWybieranych; }
private void ObliczButtonClick(object sender, EventArgs e) { string zapytanie = "", zapytanieNieaktywne = "", zapytanieLiczbaWypKsiazki = "", zapytanieLiczbaWypCzasopism = "", rodzajZbioru = ""; double liczbaNieaktywnych = 0, liczbaWszystkich = 0, liczbaWypKsiazek = 0, liczbaWypCzasopism = 0, liczbaWypOgolem = 0; DateTime dataPocz = this.dateTimePicker5.Value; DateTime dataKon = this.dateTimePicker6.Value; List<KartaCzytelnika> listaKartCzytelnika = new List<KartaCzytelnika>(); List<KartaCzytelnika> listaNieaktywnychKartCzytelnika = new List<KartaCzytelnika>(); List<LiczbaWypozyczen> listaWypozyczenKsiazek = new List<LiczbaWypozyczen>(); List<LiczbaWypozyczen> listaWypozyczenCzasopism = new List<LiczbaWypozyczen>(); BazaSQLite baza = new BazaSQLite(); DataTable dt1 = new DataTable(); DataTable dt2 = new DataTable(); DataTable dt3 = new DataTable(); DataTable dt4 = new DataTable(); zapytanie = String.Format("select id_karty as pom from Karty"); zapytanieNieaktywne = String.Format("select id_karty as pom from Karty as k where k.status = \"nieaktywna\""); zapytanieLiczbaWypKsiazki = String.Format("select id_egzemplarza + id_karty as pom from Karty_Wypozyczen_Ksiazki as kwk where data_wypozyczenia between date(\"" + dataPocz + "\") and date(\"" + dataKon + "\")"); zapytanieLiczbaWypCzasopism = String.Format("select id_egzemplarza + id_karty as pom from Karty_Wypozyczen_Czasopisma as kwc where data_wypozyczenia between date(\"" + dataPocz + "\") and date(\"" + dataKon + "\")"); dt1 = baza.GetDataTable(zapytanie); dt2 = baza.GetDataTable(zapytanieNieaktywne); dt3 = baza.GetDataTable(zapytanieLiczbaWypKsiazki); dt4 = baza.GetDataTable(zapytanieLiczbaWypCzasopism); foreach (DataRow row in dt1.Rows) { KartaCzytelnika rekord = new KartaCzytelnika(); rekord.Id = Convert.ToInt32(row["pom"]); listaKartCzytelnika.Add(rekord); } foreach (DataRow row in dt2.Rows) { KartaCzytelnika rekord = new KartaCzytelnika(); rekord.Id = Convert.ToInt32(row["pom"]); listaNieaktywnychKartCzytelnika.Add(rekord); } foreach (DataRow row in dt3.Rows) { LiczbaWypozyczen rekord = new LiczbaWypozyczen(); rekord.Id = Convert.ToInt32(row["pom"]); listaWypozyczenKsiazek.Add(rekord); } foreach (DataRow row in dt4.Rows) { LiczbaWypozyczen rekord = new LiczbaWypozyczen(); rekord.Id = Convert.ToInt32(row["pom"]); listaWypozyczenCzasopism.Add(rekord); } liczbaNieaktywnych = listaNieaktywnychKartCzytelnika.Count(); liczbaWszystkich = listaKartCzytelnika.Count(); liczbaWypKsiazek = listaWypozyczenKsiazek.Count(); liczbaWypCzasopism = listaWypozyczenCzasopism.Count(); liczbaWypOgolem = liczbaWypKsiazek + liczbaWypCzasopism; if ((liczbaWszystkich != 0)) { udzialOsobNieaktywnychLabel.Text = String.Format("{0}%", Math.Round(liczbaNieaktywnych / liczbaWszystkich, 3).ToString()); } if (string.IsNullOrEmpty(rodzajZbioruComboBox.Text)) { MessageBox.Show("Proszę wybrać rodzaj zbiorów bibliotecznych.", "Analiza stanu czytelnictwa"); } else { rodzajZbioru = this.rodzajZbioruComboBox.SelectedItem.ToString(); } switch (rodzajZbioru) { case "książki": this.calkowitaLiczbaWypLabel.Text = Convert.ToString(liczbaWypKsiazek); break; case "czasopisma": this.calkowitaLiczbaWypLabel.Text = Convert.ToString(liczbaWypCzasopism); break; case "wszystkie": this.calkowitaLiczbaWypLabel.Text = Convert.ToString(liczbaWypOgolem); break; } }