示例#1
0
        //public object DG_Allekunden { get; private set; }



        //public fenster_k_aenderen(List<Kunde> Kundenliste, int index)
        public fenster_k_aenderen(Kunde kunde, DataRowView data, int index, bool useSQL)

        {
            InitializeComponent();
            k1     = kunde;
            SQLuse = useSQL;
            idx    = index;

            if (SQLuse == false)    //use sql oder liste
            {
                laden_speichern ls = new laden_speichern();
                Kundenliste = ls.KundenLaden();

                this.Kundenliste = Kundenliste;



                //MessageBox.Show("DEBUG:: open window aenderen");

                TB_Nname.Text        = Kundenliste[index].Nachname;
                TB_Vname.Text        = Kundenliste[index].Vorname;
                TB_Geburtsdatum.Text = Kundenliste[index].geburtsdatum.ToString();
                TB_mail.Text         = Kundenliste[index].kontaktdaten.Email;
                TB_Telefon.Text      = Kundenliste[index].kontaktdaten.Telefon;
                TB_Strasse.Text      = Kundenliste[index].kontaktdaten.Adress.Strasse;
                TB_Hausnummer.Text   = Kundenliste[index].kontaktdaten.Adress.Hausnummer;
                TB_PLZ.Text          = Kundenliste[index].kontaktdaten.Adress.PLZ;
                TB_Ort.Text          = Kundenliste[index].kontaktdaten.Adress.Ort;
            }
            else
            {
                k1.KundeID = (int)data.Row.ItemArray[0];
                k1.Vorname = (string)data.Row.ItemArray[1];

                k1.Nachname     = (string)data.Row.ItemArray[2];
                k1.geburtsdatum = (DateTime)data.Row.ItemArray[3];

                k1.kontaktdaten         = new KontaktDaten();
                k1.kontaktdaten.Email   = (string)data.Row.ItemArray[4];
                k1.kontaktdaten.Telefon = (string)data.Row.ItemArray[5];

                k1.Kontaktdaten.Adress            = new Adresse();
                k1.kontaktdaten.Adress.Strasse    = (string)data.Row.ItemArray[6];
                k1.kontaktdaten.Adress.Hausnummer = (string)data.Row.ItemArray[7];
                k1.kontaktdaten.Adress.PLZ        = (string)data.Row.ItemArray[8];
                k1.kontaktdaten.Adress.Ort        = (string)data.Row.ItemArray[9];

                ////Kundendaten transfer from DG to Anlege Fenster

                TB_Nname.Text        = k1.Nachname;;
                TB_Vname.Text        = k1.Vorname;
                TB_Geburtsdatum.Text = k1.geburtsdatum.ToString();
                TB_mail.Text         = k1.kontaktdaten.Email;
                TB_Telefon.Text      = k1.kontaktdaten.Telefon;
                TB_Strasse.Text      = k1.kontaktdaten.Adress.Strasse;
                TB_Hausnummer.Text   = k1.kontaktdaten.Adress.Hausnummer;
                TB_PLZ.Text          = k1.kontaktdaten.Adress.PLZ;
                TB_Ort.Text          = k1.kontaktdaten.Adress.Ort;
            }
        }
        //public fenster_k_anlegen(List<Kunde> Kundenliste, int index)
        public fenster_k_anlegen(Kunde kunde, bool useSQL)

        {
            InitializeComponent();
            SQLuse = useSQL;
            if (SQLuse == false)
            {
                laden_speichern ls = new laden_speichern();
                Kundenliste = ls.KundenLaden();
                //this.Kundenliste = Kundenliste;
            }
        }
        private void BT_löschen_Click(object sender, RoutedEventArgs e)
        {
            if (DG_kunde.SelectedIndex >= 0 && Kundenliste != null)
            {
                Kundenliste.RemoveAt(DG_kunde.SelectedIndex);
                laden_speichern ls = new laden_speichern();
                ls.KundenSpeichern(Kundenliste);
            }
            else
            {
                MessageBox.Show("Bitte zuerst Kunde Auswählen");
            }
            //Datengrid Aktualisieren

            DG_kunde.ItemsSource = null;
            DG_kunde.ItemsSource = Kundenliste;
        }
        //DG_Allekunden aktualisieren
        public void DG_Update()
        {
            try
            {
                // SQL queries benutzen für Data Grid zu aktualisieren
                string          query;
                MySqlConnection con = new MySqlConnection(connstring);
                con.Open();
                DataTable dt = new DataTable();

                query = ("select t_kunde.KundenID,t_kunde.Vorname,t_kunde.Nachname , " +
                         " t_kunde.Geburtsdatum ,t_kontaktdaten.Email,t_kontaktdaten.Telefon ," +
                         " t_adresse.Strasse,t_adresse.Hausnummer,t_adresse.PLZ,t_adresse.Ort" +
                         " from t_kunde " +
                         " INNER JOIN t_kontaktdaten on t_kunde.KontaktdatenID = t_kontaktdaten.KontaktdatenID " +
                         " INNER JOIN t_adresse on t_kunde.AdressenID = t_adresse.AdressenID");

                MySqlCommand     com = new MySqlCommand(query, con);
                MySqlDataAdapter da  = new MySqlDataAdapter(com);


                da.Fill(dt);


                DG_Allekunden.ItemsSource = dt.DefaultView;
                //fenster_k_bearbeiten fb = new fenster_k_bearbeiten();
                //fb.DG_kunde.ItemsSource = DG_Allekunden.ItemsSource;

                con.Close();
            }
            catch (Exception)
            {
                //MessageBox.Show("DEBUG: in MAIN DG_Update: no SQL ");
                useSQL = false;            //Parameter prüft connection und Data Arbeit bei Database oder List
            }

            if (useSQL == false)          //Kein SQL connection, arbeit in Liste
            {
                laden_speichern ls = new laden_speichern();
                Kundenliste = ls.KundenLaden();
                DG_Allekunden.ItemsSource = Kundenliste;
            }
        }
        public fenster_k_bearbeiten()
        {
            InitializeComponent();


            laden_speichern ls = new laden_speichern();

            Kundenliste      = ls.KundenLaden();
            this.Kundenliste = Kundenliste;

            Kunde kunde;

            DG_kunde.ItemsSource = null;
            if (Kundenliste.Count < 1)
            {
                MessageBox.Show("kein kunden in data grid");
            }
            else
            {
                DG_kunde.ItemsSource = Kundenliste;
            }
        }
示例#6
0
        public void BT_aendern_Click(object sender, RoutedEventArgs e)
        {
            if (SQLuse == false)
            {
                //Kundendaten ändern
                MessageBox.Show($"{idx}");                                     // Index controller
                Kundenliste[idx].Nachname             = TB_Nname.Text;
                Kundenliste[idx]._vorname             = TB_Vname.Text;
                Kundenliste[idx].Kontaktdaten.Email   = TB_mail.Text;
                Kundenliste[idx].Kontaktdaten.Telefon = TB_Telefon.Text;
                DateTime tempDat = Kundenliste[idx].geburtsdatum;
                if (DateTime.TryParse(TB_Geburtsdatum.Text, out Kundenliste[idx].geburtsdatum))
                {
                }
                else
                {
                    MessageBox.Show("Falsches Datumsformat.");
                    Kundenliste[idx].geburtsdatum = tempDat;
                    //close = false;
                }

                Kundenliste[idx].Kontaktdaten.Adress.Umzug(TB_Strasse.Text, TB_Hausnummer.Text, TB_PLZ.Text, TB_Ort.Text);

                if (CB_Lieferanschrift.IsChecked == true)
                {
                    //falls abweichende lieferanschrift
                    Kundenliste[idx].lieferanschrift.Umzug(TB_Strasse_la.Text, TB_Hausnummer_la.Text, TB_PLZ_la.Text, TB_Ort_la.Text);
                }
                laden_speichern ls = new laden_speichern();
                ls.KundenSpeichern(Kundenliste);
            }
            //if (close)
            //{

            //    this.Close();
            //}



            else
            {
                //Kommunikation mit Datenbank
                MySqlConnection con = new MySqlConnection("Server=localhost;Database=Team1;Uid=root;");

                con.Open();



                //Speicher
                k1.Vorname      = TB_Vname.Text;
                k1.Nachname     = TB_Nname.Text;
                k1.geburtsdatum = (DateTime.Parse(TB_Geburtsdatum.Text));

                k1.kontaktdaten         = new KontaktDaten();
                k1.kontaktdaten.Email   = TB_mail.Text;
                k1.kontaktdaten.Telefon = TB_Telefon.Text;

                k1.kontaktdaten.Adress            = new Adresse();
                k1.Kontaktdaten.Adress.Strasse    = TB_Strasse.Text;
                k1.kontaktdaten.Adress.Hausnummer = TB_Hausnummer.Text;
                k1.kontaktdaten.Adress.PLZ        = TB_PLZ.Text;
                k1.kontaktdaten.Adress.Ort        = TB_Ort.Text;


                string kid   = "";
                string konid = "";
                string adid  = "";


                string query = $"select * from t_kunde where KundenID= {k1.KundeID }";

                MySqlCommand com = new MySqlCommand(query);
                com.Connection = con;
                MySqlDataReader reader = com.ExecuteReader(); // lesen alle daten von t_kunde
                if (reader.Read())
                {
                    kid   = reader[0].ToString();        // er holt nur stelle 0 , stelle 0 isr KundenID
                    konid = reader[2].ToString();        //er holt nur stelle 2 , stelle 0 isr kontaktID
                    adid  = reader[5].ToString();        //AdressID
                }
                reader.Close();


                MessageBox.Show($"DEBUG:in AENDEREN: KundenID ={ kid} ");

                //MessageBox.Show("DEBUG:in AENDEREN: Daten aus Formular gelesen ");
                string updatequery = $"update t_kunde set Nachname='{k1.Nachname}',Vorname='{k1.Vorname}'  where KundenID = {kid}";

                com.CommandText = updatequery;
                com.ExecuteNonQuery();

                //MessageBox.Show("DEBUG:in AENDEREN: in SQL geschrieben ");
                MessageBox.Show($"DEBUG:in AENDEREN: kontaktID = {konid} ");


                string konupdate = $"update t_kontaktdaten set Email='{k1.kontaktdaten.Email}',Telefon='{k1.kontaktdaten.Telefon}'   where KontaktdatenID = {konid} ";
                com.CommandText = konupdate;
                com.ExecuteNonQuery();

                string adressupdate = $"update t_adresse set Strasse ='{k1.kontaktdaten.Adress.Strasse}',Hausnummer ='{k1.kontaktdaten.Adress.Hausnummer}' ,PLZ= '{k1.kontaktdaten.Adress.PLZ}',Ort= '{k1.kontaktdaten.Adress.Ort}' where AdressenID={adid} ";
                com.CommandText = adressupdate;
                com.ExecuteNonQuery();



                con.Close();
            }
            Close();
        }
        // Delete from SQL Database oder Liste
        private void delete_Click(object sender, RoutedEventArgs e)
        {
            if (useSQL == false)
            {
                index = DG_Allekunden.SelectedIndex;

                if (DG_Allekunden.SelectedIndex >= 0 && Kundenliste != null)
                {
                    Kundenliste.RemoveAt(DG_Allekunden.SelectedIndex);
                    laden_speichern ls = new laden_speichern();
                    ls.KundenSpeichern(Kundenliste);
                }
                else
                {
                    MessageBox.Show("Bitte zuerst Kunde Auswählen");
                }
                //Datengrid Aktualisieren

                DG_Allekunden.ItemsSource = null;
                DG_Allekunden.ItemsSource = Kundenliste;
            }
            else // SQL verbindet
            {
                MySqlConnection con = new MySqlConnection("Server=localhost;Database=Team1;Uid=root;"); //connection bauen
                con.Open();                                                                                                                //connection öffnen
                string       query = $"select * from t_kunde where KundenID={((DataRowView)DG_Allekunden.SelectedItem).Row.ItemArray[0]}"; //gibt alle Daten die in t_kunde sind und vergleicht der Primary key mit den selected rows erste stelle wo normalerweise kommt der primary key
                MySqlCommand com   = new MySqlCommand(query);                                                                              //select query in command
                com.Connection = con;                                                                                                      //command ist connected mit unsere connected database
                MySqlDataReader reader = com.ExecuteReader();                                                                              // lesen alle daten von t_kunde

                //leere strings ; die reservieren platz für :
                string kid   = "";                        //KundenId
                string konid = "";                        //KontaktdatenID
                string adid  = "";                        //AdressID



                if (reader.Read())
                {
                    kid   = reader[0].ToString();      // er holt nur stelle 0 von table t_kunde , stelle 0 ist KundenID
                    konid = reader[2].ToString();      //er holt nur stelle 2  von table t_kunde, stelle 2 isr kontaktdatenID
                    adid  = reader[5].ToString();      // er holt nur stelle 5 von table t_kunde , stelle 0 ist AdressId
                }
                reader.Close();                        //close executreader


                // Bei Delete process muss der delete von mehr als eine table passiert; weil t_kunde hat 2 foreign key(kontaktdatenid,adressid)
                //alle daten die verbinden mit t_kunde muss auch löschen
                //1. löschen alle Kunden Termin
                //2.löschen t_kunde table
                //3.löschen alle kunden Kontaktdaten von t_kontaktdaten
                //4.und dann löschen kunden Adress daten von t_Adress

                com.CommandText = $"delete from t_termin where KundenID ={kid}"; //delete alle Kunden Termine before t_kunde table zu löschen



                if (com.ExecuteNonQuery() > 0 //
                    )
                {
                    MessageBox.Show(" Successfuly Termine deleted");
                }


                com.CommandText = $"delete from t_kunde where KundenID ={kid}";


                if (com.ExecuteNonQuery() > 0
                    )
                {
                    MessageBox.Show(" Successfuly!! Kunde is deleted");
                }
                try
                {
                    com.CommandText = $"delete from t_kontaktdaten where KontaktdatenID ={konid}";            //alle kunden kontaktdaten löschen
                    if (com.ExecuteNonQuery() > 0
                        )
                    {
                        MessageBox.Show(" Successfuly Kunde Kontakdaten deleted");
                    }
                }
                catch (Exception)
                {
                }



                com.CommandText = $"delete from  t_adresse where AdressenID={adid}";               //kunde adress löschen
                com.ExecuteNonQuery();



                if (com.ExecuteNonQuery() > 0
                    )
                {
                    MessageBox.Show(" Successfuly Kunde Adress deleted");
                }


                DG_Update();
                con.Close();
            }
        }
        private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
        {
            laden_speichern ls = new laden_speichern();

            ls.KundenSpeichern(Kundenliste);
        }