//Macht eine Update-Query auf cfy_kunden wobei nur der Status auf inaktiv gesetzt wird und gleichzeitig in cfy_geloescht ein Log geschrieben wird. public void UpdateCustomer(string table, string objektId) { int unix_zeitpunkt = 0; Datum time = new Datum(); unix_zeitpunkt = time.unix(); // Update query erstellen string query = "UPDATE " + table + " SET status = 1 where objekt_id = " + objektId + ";"; //Objekte für Log und Get erstellen MySQLInsertLog log = new MySQLInsertLog(); MySQLGetData get = new MySQLGetData(); //Information, dass ein Datensatz auf inaktiv gesetzt wurde cfy_geloecht entspricht cfy_inkativ heißt aktuell nur anders in der Datenbank log.InsertIntoGeloescht("cfy_kunden", get.GetIdfromTable("cfy_kunden", objektId), objektId.ToString()); //Query ausführen try { if (OpenConnection() == true) { MySqlCommand cmd = new MySqlCommand(query, connection); //Ausführen cmd.ExecuteNonQuery(); //Verbindung schließen CloseConnection(); } } catch (MySqlException ex) { //Falls die Query Fehlerhaft ist, die MySQL Exception Nummer ausgeben. Die MySQL Exception Nummern kann man nachlesen in gängigen Internet-Tabellen Console.WriteLine("MySQL Fehler: " + ex.Number); } }
public void Fill_Tables() { MySQLGetData get = new MySQLGetData(); List <string> table_names = get.GetTableNames(); // füllen der Tabellen mit den Daten... if (!datenGeladen) { try { Console.Write("Lade Daten Bitte warten"); foreach (string item1 in table_names) { if (item1.Contains("cfy_")) { if (!(item1.Contains("cfy_rohdaten"))) { //Console.WriteLine(item1); tables.Add(item1, get.getTableData(item1)); //Console.WriteLine ("...geladen"); for (int i = 0; i < tables [item1].Length; i++) { anzahlDatensätze += tables [item1] [i].Count; } } } } datenGeladen = true; List <string> keys = new List <string> (tables.Keys); KeyList = keys; Console.WriteLine("Daten laden abgeschlossen," + anzahlDatensätze + " Datensätze geladen"); } catch { datenGeladen = false; } } // Beispiel für den Zugriff auf Daten einer Tabelle: [tabellenname][spaltennummer][zeilennummer] // Rückgabewert ist ein string... // Die Länge einer Liste z.B. der Spaltenanzahl bekommt man folgendermaßen: // mylist.Length -> Anzahl der Spalten // mylist[0].Count -> Anzahl der Zeilen in der ersten Spalte // Beispiel1: // List<string>[] mylist = get.getTableData ("cfy_cluster"); // for (int i = 0; i < (mylist [1].Count / 2); i++) { // Console.WriteLine (tables ["cfy_cluster"] [0] [i].ToString ()); // } // Gibt die Hälfte aller Strings in der ersten Spalte von der Tabelle cfy_cluster aus. }
private void StartCompareTwoValued() { //Objekt für MySQLGetData anlegen MySQLGetData get = new MySQLGetData(); //GPS_LANGENGRAD + GPS_BREITENGRAD //Zuerst alle aus der Datenbank geladenen Elemente in der Datenbank auf 1 => inaktiv setzen for (int i = 0; i < LoadMySQLData.tables["cfy_gps"][0].Count; i++) { insert.ChangeStatus("cfy_gps", LoadMySQLData.tables ["cfy_gps"] [0] [i], LoadMySQLData.tables ["cfy_gps"] [1] [i], true); } //Jeden neuen Datensatz einlesen foreach (MEClary.Clary.Clary_List item1 in MEClary.Clary.cfy_rohdaten) { bool wurdeGefunden = false; //Jeden alten Datensatz einlesen for (int i = 0; i < LoadMySQLData.tables["cfy_gps"][0].Count; i++) { //Beide GPS-Daten miteinander vergleichen, wenn gleich, dann if (item1.gps_langengrad == LoadMySQLData.tables ["cfy_gps"] [0] [i] && item1.gps_breitengrad == LoadMySQLData.tables ["cfy_gps"] [1] [i]) { //... auf 0=> aktiv setzen insert.ChangeStatus("cfy_gps", LoadMySQLData.tables ["cfy_gps"] [0] [i], LoadMySQLData.tables ["cfy_gps"] [1] [i], false); wurdeGefunden = true; } } if (!wurdeGefunden) { //Falls ein Datensatz nicht gefunden wurde, wird er eingefügt, gleichzeitig //auf aktiv gesetzt und ... insert.Insert("cfy_gps", item1.gps_langengrad.ToString(), item1.gps_breitengrad.ToString()); //Den Information, dass ein neuer Datensatz angelegt wurde in cfy_erstellt einfügen log.InsertIntoErstellt("cfy_gps", get.GetIdfromTable("cfy_gps", item1.objekt_id.ToString()), item1.objekt_id.ToString()); //Den Counter erhöhen insertCounter = insertCounter + 1; //...der Dictionary Liste hinzugefügt. Sonst wird der gleiche Datensatz mehrfach eingefügt. LoadMySQLData.tables ["cfy_gps"] [0].Add(item1.gps_langengrad.ToString()); LoadMySQLData.tables ["cfy_gps"] [1].Add(item1.gps_breitengrad.ToString()); } } }
private void StartCompareDataTable() { MySQLGetData get = new MySQLGetData(); //bool status = false; //Daten neu Laden. Weil die IDs neu gesetzt werden müssen(In den einzelnen Tabellen) //LoadMySQLData load = new LoadMySQLData (); //Daten geladen... /*edit Es werden nur Datenbankabfragen für jede ID ausgeführt. Geht schneller.*/ //DATEN foreach (MEClary.Clary.Clary_List item1 in MEClary.Clary.cfy_rohdaten) { bool wurdeGefunden = false; for (int i = 0; i < LoadMySQLData.tables["cfy_daten"][13].Count; i++) { if (item1.objekt_id.ToString() == LoadMySQLData.tables ["cfy_daten"] [13] [i] && LoadMySQLData.tables ["cfy_daten"] [16] [i] == "False") { if (get.GetIdfromTable("cfy_sq", item1.signalquelle_id) == "" || get.GetIdfromTable("cfy_sqtyp", item1.type) == "" || get.GetIdfromTable("cfy_signallieferant", item1.signallieferant) == "" || get.GetIdfromTable("cfy_cmts", item1.cmts) == "" || get.GetIdfromTable("cfy_cluster", item1.cluster_id) == "" || get.GetIdfromTable("cfy_ort", item1.ort) == "" || get.GetIdfromTable("cfy_plz", item1.plz) == "" || get.GetIdfromTable("cfy_strasse", item1.strasse) == "" || get.GetIdfromTable("cfy_hnr", item1.hnr) == "" || get.GetIdfromTable("cfy_gestattungsgeber_daten", item1.gestatt_vertragsn) == "" || get.GetIdfromTable("cfy_gestattungsgeber_name", item1.gestatt_name) == "" || get.GetIdfromTable("cfy_gps", item1.gps_langengrad, item1.gps_breitengrad) == "" || get.GetIdfromTable(item1.objekt_id.ToString()) == "") { string[] idList = new string[15]; idList [0] = get.GetIdfromTable("cfy_sq", item1.signalquelle_id); idList [1] = get.GetIdfromTable("cfy_sqtyp", item1.type); idList [2] = get.GetIdfromTable("cfy_signallieferant", item1.signallieferant); idList [3] = get.GetIdfromTable("cfy_cmts", item1.cmts); idList [4] = get.GetIdfromTable("cfy_cluster", item1.cluster_id); idList [5] = get.GetIdfromTable("cfy_ort", item1.ort); idList [6] = get.GetIdfromTable("cfy_plz", item1.plz); idList [7] = get.GetIdfromTable("cfy_strasse", item1.strasse); idList [8] = get.GetIdfromTable("cfy_hnr", item1.hnr); idList [9] = get.GetIdfromTable("cfy_gestattungsgeber_daten", item1.gestatt_vertragsn); idList [10] = get.GetIdfromTable("cfy_gestattungsgeber_name", item1.gestatt_name); idList [11] = item1.objekt_id.ToString(); idList [12] = get.GetIdfromTable("cfy_gps", item1.gps_langengrad, item1.gps_breitengrad); idList [13] = get.GetIdfromTable(item1.objekt_id.ToString()); idList [14] = item1.region.ToString(); insert.InsertIntoData(idList); insert.UpdateCustomer("cfy_daten", item1.objekt_id.ToString()); log.InsertIntoUpdate("cfy_daten", idList[13], idList[11]); updateCounter = updateCounter + 1; } wurdeGefunden = true; //ObjektId existiert bereits } } if (!wurdeGefunden) { //Falls ein Datensatz nicht gefunden wurde, wird er eingefügt, gleichzeitig //auf aktiv gesetzt und ... //insert.Insert ("",""); //insertCounter += 1; //...der Dictionary Liste hinzugefügt. Sonst wird der gleiche Datensatz mehrfach eingefügt. //LoadMySQLData.tables ["cfy_kunden"] [0].Add (""); string[] idList = new string[15]; idList [0] = get.GetIdfromTable("cfy_sq", item1.signalquelle_id); idList [1] = get.GetIdfromTable("cfy_sqtyp", item1.type); idList [2] = get.GetIdfromTable("cfy_signallieferant", item1.signallieferant); idList [3] = get.GetIdfromTable("cfy_cmts", item1.cmts); idList [4] = get.GetIdfromTable("cfy_cluster", item1.cluster_id); idList [5] = get.GetIdfromTable("cfy_ort", item1.ort); idList [6] = get.GetIdfromTable("cfy_plz", item1.plz); idList [7] = get.GetIdfromTable("cfy_strasse", item1.strasse); idList [8] = get.GetIdfromTable("cfy_hnr", item1.hnr); idList [9] = get.GetIdfromTable("cfy_gestattungsgeber_daten", item1.gestatt_vertragsn); idList [10] = get.GetIdfromTable("cfy_gestattungsgeber_name", item1.gestatt_name); idList [11] = item1.objekt_id.ToString(); idList [12] = get.GetIdfromTable("cfy_gps", item1.gps_langengrad, item1.gps_breitengrad); idList [13] = get.GetIdfromTable(item1.objekt_id.ToString()); idList [14] = item1.region.ToString(); insert.InsertIntoData(idList); log.InsertIntoErstellt("cfy_daten", idList[13], idList[11]); log.InsertCreateTimeIntoDaten(idList[11]); insertCounter += 1; //...der Dictionary Liste hinzugefügt. Sonst wird der gleiche Datensatz mehrfach eingefügt. LoadMySQLData.tables ["cfy_daten"] [0].Add(idList [0]); LoadMySQLData.tables ["cfy_daten"] [1].Add(idList [1]); LoadMySQLData.tables ["cfy_daten"] [3].Add(idList [2]); LoadMySQLData.tables ["cfy_daten"] [4].Add(idList [3]); LoadMySQLData.tables ["cfy_daten"] [5].Add(idList [4]); LoadMySQLData.tables ["cfy_daten"] [6].Add(idList [5]); LoadMySQLData.tables ["cfy_daten"] [7].Add(idList [6]); LoadMySQLData.tables ["cfy_daten"] [8].Add(idList [7]); LoadMySQLData.tables ["cfy_daten"] [9].Add(idList [8]); LoadMySQLData.tables ["cfy_daten"] [10].Add(idList [9]); LoadMySQLData.tables ["cfy_daten"] [11].Add(idList [10]); LoadMySQLData.tables ["cfy_daten"] [13].Add(idList [11]); LoadMySQLData.tables ["cfy_daten"] [14].Add(idList [12]); LoadMySQLData.tables ["cfy_daten"] [15].Add(idList [13]); LoadMySQLData.tables ["cfy_daten"] [21].Add(idList [14]); } } }
private void StartCompareMultiValued() { bool status = false; MySQLGetData get = new MySQLGetData(); //KUNDEN for (int i = 0; i < LoadMySQLData.tables["cfy_kunden"][0].Count; i++) { insert.ChangeStatusInCustomer("cfy_kunden", LoadMySQLData.tables ["cfy_kunden"] [5] [i], true); } foreach (MEClary.Clary.Clary_List item1 in MEClary.Clary.cfy_rohdaten) { bool wurdeGefunden = false; for (int i = 0; i < LoadMySQLData.tables["cfy_kunden"][5].Count; i++) { //Bis hier wie bei allen anderen Datensätzen gleichbleibend if (item1.objekt_id.ToString() == LoadMySQLData.tables ["cfy_kunden"] [5] [i]) { insert.ChangeStatusInCustomer("cfy_kunden", LoadMySQLData.tables ["cfy_kunden"] [5] [i], false); //Ab hier: Falls für ein Objekt_Id eine neuer Datensatz anders ist, erfolgt ein... if ((item1.soll_we.ToString() != LoadMySQLData.tables ["cfy_kunden"] [0] [i].ToString() || item1.subscriber.ToString() != LoadMySQLData.tables ["cfy_kunden"] [1] [i].ToString() || item1.subscriber_int.ToString() != LoadMySQLData.tables ["cfy_kunden"] [2] [i].ToString() || item1.subscriber_tel.ToString() != LoadMySQLData.tables ["cfy_kunden"] [3] [i].ToString()) && status.ToString() == LoadMySQLData.tables ["cfy_kunden"] [4] [i].ToString()) { //Ein neuer Datensatz wird eingefügt insert.Insert("cfy_kunden", item1.soll_we.ToString(), item1.subscriber.ToString(), item1.subscriber_int.ToString(), item1.subscriber_tel.ToString(), item1.objekt_id.ToString()); //Update von cfy_kunden. Hier wird nur der alte Datensatz auf Inaktiv gesetzt insert.UpdateCustomer("cfy_kunden", item1.objekt_id.ToString()); log.InsertIntoUpdate("cfy_kunden", get.GetIdfromTable("cfy_kunden", item1.objekt_id.ToString()), item1.objekt_id.ToString()); updateCounter = updateCounter + 1; } wurdeGefunden = true; } } if (!wurdeGefunden) { //Falls ein Datensatz nicht gefunden wurde, wird er eingefügt, gleichzeitig //auf aktiv gesetzt und ... insert.Insert("cfy_kunden", item1.soll_we.ToString(), item1.subscriber.ToString(), item1.subscriber_int.ToString(), item1.subscriber_tel.ToString(), item1.objekt_id.ToString()); insertCounter += 1; log.InsertIntoErstellt("cfy_kunden", get.GetIdfromTable("cfy_kunden", item1.objekt_id.ToString()), item1.objekt_id.ToString()); //...der Dictionary Liste hinzugefügt. Sonst wird der gleiche Datensatz mehrfach eingefügt. LoadMySQLData.tables ["cfy_kunden"] [0].Add(item1.soll_we.ToString()); LoadMySQLData.tables ["cfy_kunden"] [1].Add(item1.subscriber.ToString()); LoadMySQLData.tables ["cfy_kunden"] [2].Add(item1.subscriber_int.ToString()); LoadMySQLData.tables ["cfy_kunden"] [3].Add(item1.subscriber_tel.ToString()); LoadMySQLData.tables ["cfy_kunden"] [4].Add(status.ToString()); LoadMySQLData.tables ["cfy_kunden"] [5].Add(item1.objekt_id.ToString()); //LOG schreiben } } }