|
|
|
|
Objective-C
|
149 lines
|
136 sloc
|
5.2 kB
  1. /*☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰ 
  2.  *  
  3.  *  
  4.  *  
  5.  *  
  6.  *  
  7.  *☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰☰*/ 
  8.  
  9. using System; 
  10. using System.Collections.Generic; 
  11. using System.ComponentModel; 
  12. using System.Data; 
  13. using System.Drawing; 
  14. using System.Linq; 
  15. using System.Text; 
  16. using System.Threading.Tasks; 
  17. using System.Windows.Forms; 
  18. using System.Data.SqlClient; 
  19. using System.Data.OleDb; 
  20.  
  21. namespace Braun_UE09 
  22. { 
  23.     public partial class Form1 : Form 
  24.     { 
  25.         //Für MS-Access ab 2007 - Dateiname *.accdb 
  26.         string strACCDB = @"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=..\..\HotelDB.accdb"; 
  27.         //Objekt für DB-Verbindung deklarieren 
  28.         OleDbConnection dbcDB; 
  29.         public Form1() 
  30.         { 
  31.             InitializeComponent(); 
  32.         } 
  33.  
  34.         private void Form1_Load(object sender, EventArgs e) 
  35.         { 
  36.             dbcDB = new OleDbConnection(strACCDB); 
  37.             //Access-Datenbank öffnen und mit try-catch absichern 
  38.             try 
  39.             { 
  40.                 dbcDB.Open(); 
  41.             } 
  42.             catch (Exception ex) 
  43.             { 
  44.                 MessageBox.Show(ex.Message, "Fehler"); 
  45.                 return; 
  46.             } 
  47.  
  48.             //Testausgabe 
  49.             //MessageBox.Show("Nice"); 
  50.  
  51.             //Combobox mit Orten füllen 
  52.             OrteAusDBEinlesen(); 
  53.         } 
  54.         private void OrteAusDBEinlesen() 
  55.         { 
  56.             string strSelect; 
  57.  
  58.             //select-Befehl erstellen 
  59.             //Mit DISTINCT wird das FEld Ort ohne Duplikate selektiert 
  60.             //Beispiel Excel: mit der Funktion "Duplikate entfernen" 
  61.             strSelect = "select distinct Ort" + 
  62.                         " from Hotels" + 
  63.                         " order by Ort"; 
  64.             //Testausgabe 
  65.             //MessageBox.Show(strSelect, "Hinweis"); 
  66.  
  67.             //DataReader ausführen 
  68.             OleDbCommand dbcCMD = new OleDbCommand(strSelect, dbcDB); 
  69.             OleDbDataReader dbcDR = dbcCMD.ExecuteReader(); 
  70.  
  71.             //While Schleife zum Lesen aller Datensätze 
  72.             while (dbcDR.Read()) 
  73.             { 
  74.                 //Combobox mit Orten füllen 
  75.                 cbOrt.Items.Add(dbcDR["Ort"]); 
  76.             } 
  77.             //Ersten Eintrag der ComboBox anzeigen 
  78.             cbOrt.SelectedIndex = 1; 
  79.         } 
  80.  
  81.         private void btnSuchen_Click(object sender, EventArgs e) 
  82.         { 
  83.             string strSelect=""; 
  84.             if(cbSterne.SelectedItem == "🌟") 
  85.             { 
  86.                 //select-Befehl mit Sternen-Abfrage zusammenbauen 
  87.                 //Wir wollen ja wegen der Sterne-Wildcard alle Hoteleinträge  
  88.                 strSelect = "select *" + 
  89.                             " from Hotels" + 
  90.                             " where Ort ='" + cbOrt.SelectedItem + "'" + 
  91.                             " Order by HotelID"; 
  92.             } 
  93.             else 
  94.             { 
  95.                 //select-Befehl mit Sternen-Abfrage zusammenbauen 
  96.                 strSelect = "select *" + 
  97.                             " from Hotels" + 
  98.                             " where Ort ='" + cbOrt.SelectedItem + "'" + 
  99.                             " and Sterne = " + cbSterne.SelectedItem + 
  100.                             " Order by HotelID"; 
  101.             } 
  102.             //DataAdapter erzeugen 
  103.             OleDbDataAdapter dbcDA = new OleDbDataAdapter(strSelect, dbcDB); 
  104.             //DataTable erzeugen 
  105.             DataTable dbcDT = new DataTable(); 
  106.             try 
  107.             { 
  108.                 //DataTable über DataAdapter füllen 
  109.                 dbcDA.Fill(dbcDT); 
  110.                 //DateTable im DataGridView anzeigen 
  111.                 dgvDaten.DataSource = dbcDT; 
  112.             } 
  113.             catch(Exception ex) 
  114.             { 
  115.                 MessageBox.Show(ex.Message, "Irgendwas geht nicht. Viel Spaß."); 
  116.             } 
  117.         } 
  118.  
  119.         private void cbOrt_SelectedIndexChanged(object sender, EventArgs e) 
  120.         { 
  121.             string strSelect; 
  122.  
  123.             //select-Befehl erstellen 
  124.             strSelect = "select distinct sterne from hotels" + 
  125.                         " where Ort ='" + cbOrt.SelectedItem + "'" + 
  126.                         " Order by sterne"; 
  127.  
  128.             //DataReader ausführen 
  129.             OleDbCommand dbcCMD = new OleDbCommand(strSelect, dbcDB); 
  130.             OleDbDataReader dbcDR = dbcCMD.ExecuteReader(); 
  131.  
  132.             //Vorherige Einträge löschen 
  133.             cbSterne.Items.Clear(); 
  134.             //Wildcard * für Sterne als erstes Element einfügen 
  135.             cbSterne.Items.Add("🌟"); 
  136.             //While Schleife zum Lesen aller Datensätze 
  137.             while (dbcDR.Read()) 
  138.             { 
  139.                 //Combobox mit Sternen füllen 
  140.                 if (! (dbcDR["Sterne"]).Equals(System.DBNull.Value)) 
  141.                 { 
  142.                     cbSterne.Items.Add(dbcDR["Sterne"]); 
  143.                 } 
  144.             } 
  145.             //Ersten Eintrag der ComboBox anzeigen 
  146.             cbSterne.SelectedIndex = 0; 
  147.         } 
  148.     } 
  149. }