Advertisement
Guest User

Untitled

a guest
Mar 26th, 2019
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.95 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9.  
  10. using System.Globalization;
  11. using System.Windows.Forms;
  12. using System.Data.SQLite;
  13.  
  14. namespace ArbeitUebung
  15. {
  16. public partial class Form1 : Form
  17. {
  18. private static string connectionString = "";
  19. private static SQLiteConnection Connection = new SQLiteConnection(connectionString);
  20.  
  21. public List<Schueler> Schueler = new List<Schueler>();
  22.  
  23. public Form1()
  24. {
  25. InitializeComponent();
  26. Schueler = LadeSchueler(Connection);
  27. foreach (Schueler schueler in Schueler)
  28. {
  29. listBox1.Items.Add(schueler);
  30. }
  31. }
  32.  
  33. public List<Schueler> LadeSchueler(SQLiteConnection con)
  34. {
  35. List<Schueler> newSchueler = new List<Schueler>();
  36.  
  37. con.Open();
  38. SQLiteCommand command = new SQLiteCommand("SELECT * FROM Schueler", con);
  39. SQLiteDataReader reader = command.ExecuteReader();
  40.  
  41. while (reader.Read())
  42. {
  43. newSchueler.Add(new Schueler()
  44. {
  45. SchuelerId = Convert.ToInt32(reader[0]),
  46. Name = Convert.ToString(reader[1]),
  47. Vorname = Convert.ToString(reader[2]),
  48. Geburtsdatum = DateTime.ParseExact(Convert.ToString(reader[3]), "DD.MM.YYYY",CultureInfo.InvariantCulture),
  49. Klasse = Convert.ToString(reader[4])
  50. });
  51. }
  52.  
  53. reader.Close();
  54. con.Close();
  55.  
  56. return newSchueler;
  57. }
  58.  
  59. public List<Fehlzeit> LadeFehlzeiten(SQLiteConnection con, Schueler schueler)
  60. {
  61. List<Fehlzeit> fehlzeiten = new List<Fehlzeit>();
  62.  
  63. con.Open();
  64. SQLiteCommand cmd = new SQLiteCommand("SELECT * FROM Fehlzeiten where schuelerid=" + schueler.SchuelerId);
  65. SQLiteDataReader reader = cmd.ExecuteReader();
  66.  
  67. while (reader.Read())
  68. {
  69. fehlzeiten.Add(new Fehlzeit()
  70. {
  71. FehlId = Convert.ToInt32(reader[0]),
  72. Schueler = schueler,
  73. Datum = DateTime.ParseExact(Convert.ToString(reader[2]), "DD.MM.YYYY", CultureInfo.InvariantCulture),
  74. Stunden = Convert.ToDouble(reader[3])
  75. });
  76. }
  77.  
  78. reader.Close();
  79. con.Close();
  80.  
  81. return fehlzeiten;
  82. }
  83.  
  84. public List<Attest> LadeAtteste(SQLiteConnection con, Schueler schueler)
  85. {
  86. List<Attest> atteste = new List<Attest>();
  87.  
  88. con.Open();
  89. SQLiteCommand cmd = new SQLiteCommand("SELECT * FROM Atteste where schuelerid=" + schueler.SchuelerId);
  90. SQLiteDataReader reader = cmd.ExecuteReader();
  91.  
  92. while (reader.Read())
  93. {
  94. atteste.Add(new Attest()
  95. {
  96. AttestId = Convert.ToInt32(reader[0]),
  97. Schueler = schueler,
  98. Datum = DateTime.ParseExact(Convert.ToString(reader[2]), "DD.MM.YYYY", CultureInfo.InvariantCulture),
  99. Stunden = Convert.ToDouble(reader[3])
  100. });
  101. }
  102.  
  103. reader.Close();
  104. con.Close();
  105.  
  106. return atteste;
  107. }
  108.  
  109. public void SetzeFehlzeiten(Schueler schueler, DateTime date, double stunden)
  110. {
  111. schueler.Fehlzeiten.Add(new Fehlzeit()
  112. {
  113. Schueler = schueler,
  114. Datum = date,
  115. Stunden = stunden
  116. });
  117. }
  118.  
  119. public double BerechneUnentschuldigt(SQLiteConnection con, Schueler schueler)
  120. {
  121. con.Open();
  122. string cmdstring = "SELECT SUM(f.verpassteStunden) FROM Fehlzeiten f JOIN Atteste a ON f.Datum ~= a.Datum WHERE schuelerId=";
  123. SQLiteCommand cmd = new SQLiteCommand(cmdstring + schueler.SchuelerId, con);
  124. SQLiteDataReader reader = cmd.ExecuteReader();
  125. double unentschuldigt = Convert.ToDouble(reader[0]);
  126. reader.Close();
  127. con.Close();
  128.  
  129. return unentschuldigt;
  130.  
  131. //List<Fehlzeit> fehltage = new List<Fehlzeit>();
  132.  
  133. //foreach(Fehlzeit fehlzeit in schueler.Fehlzeiten)
  134. //{
  135. // foreach (Attest attest in schueler.Atteste)
  136. // {
  137. // if (DateTime.Compare(attest.Datum, fehlzeit.Datum) != 0)
  138. // {
  139. // fehltage.Add(fehlzeit);
  140. // }
  141. // }
  142. //}
  143.  
  144. //return fehltage.Sum(tag => tag.Stunden);
  145. }
  146.  
  147. private void listBox1_MouseDoubleClick(object sender, MouseEventArgs e)
  148. {
  149. int index = listBox1.IndexFromPoint(e.Location);
  150. if (index != ListBox.NoMatches)
  151. {
  152. Schueler schueler = Schueler[index];
  153. schueler.Fehlzeiten = LadeFehlzeiten(Connection, schueler);
  154. schueler.Atteste = LadeAtteste(Connection, schueler);
  155. }
  156. }
  157. }
  158.  
  159. public class Schueler
  160. {
  161. public int SchuelerId;
  162. public string Name;
  163. public string Vorname;
  164. public DateTime Geburtsdatum;
  165. public string Klasse;
  166.  
  167. public List<Fehlzeit> Fehlzeiten;
  168. public List<Attest> Atteste;
  169. }
  170.  
  171. public class Fehlzeit
  172. {
  173. public int FehlId;
  174. public Schueler Schueler;
  175. public DateTime Datum;
  176. public double Stunden;
  177.  
  178. public Attest Attest;
  179. }
  180.  
  181. public class Attest
  182. {
  183. public int AttestId;
  184. public Schueler Schueler;
  185. public DateTime Datum;
  186. public double Stunden;
  187. }
  188. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement