예제 #1
0
    /// <summary>
    /// Ermöglicht es nach bestimmten Kunden zu suchen bzw. alle Kunden aus der Datenbank anzeigen zu lassen.
    /// </summary>
    private void SearchKunden()
    {
      this.Cursor = Cursors.WaitCursor;
      KundeFilter filter = new KundeFilter();
      filter.KundeId = tbxKundenNr.Text;
      filter.Name_Firma = tbxName.Text;
      filter.Matchcode = tbxMatchcode.Text;
      filter.Ort = tbxOrt.Text;
      filter.PLZ = tbxPLZ.Text;
      filter.Kategorie = cobKategorie.Text;
      filter.Status = cbxGesperrt.CheckState;
      filter.Query = filter.GetSqlQuery(filter);

      Func.FUebersicht.slKunde.Text = "";
      // User hat keine Suchwerte eingegeben - Alle Kunden werden nach Bestätigung durch User aufgelistet

      if (filter.IsDefault)

      //if ((tbxKundenNr.Text == "") & (tbxMatchcode.Text == "") & (tbxName.Text == "") & (tbxOrt.Text == "") & (tbxPLZ.Text == "") &
      //    (cbxGesperrt.CheckState == CheckState.Indeterminate) & (cobKategorie.Text == ""))
      {
        using (var dbContext = new DataBaseDataContext())
        {
          int customerCount = dbContext.Kunde.Count();
          if (customerCount > 0)
          {
            //this.Hide();
            this.Cursor = Cursors.Default;
            DialogResult result = MessageBox.Show(string.Format("Es wurden insgesamt  ( {0} )  Kunden gefunden.\nSollen diese alle angezeigt werden?", customerCount.ToString()),
                                                  "Auswahl Kunden", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            // Bei Bestätigung des Dialoges werden alle Kunden aus der Datenbank angezeigt.
            if (result == DialogResult.Yes)
            {
              try
              {
                this.Cursor = Cursors.WaitCursor;
                using (var sqlconnection = new SqlConnection(Settings.Default.NorkaConnectionString))
                {
                  var command = new SqlCommand(filter.Query, sqlconnection);
                  var adapter = new SqlDataAdapter(command);
                  var table = new DataTable();
                  Func.FUebersicht.slKunde.Text = string.Format("{0} Datensätze gefunden.", adapter.Fill(table));
                  Func.FUebersicht.dgrKunden.Columns.Clear();
                  Func.FUebersicht.dgrKunden.Columns.Add(new DataGridViewCheckBoxColumn() { HeaderText = "Markieren" });
                  this.Cursor = Cursors.Default;
                  Func.FUebersicht.dgrKunden.DataSource = table;
                }
              }
              catch (Exception ex)
              {
                MessageBox.Show(ex.ToString());
              }
              //Func.FUebersicht.dgrKunden.DataSource = dbContext.Kunde.Select(k => k);
              Func.FUebersicht.LastCustomerSearchQuery = filter.Query;
            }
          }
        }
      }
      else
      {
        try
        {
          this.Cursor = Cursors.WaitCursor;
          using (var sqlconnection = new SqlConnection(Settings.Default.NorkaConnectionString))
          {
            var command = new SqlCommand(filter.Query, sqlconnection);
            var adapter = new SqlDataAdapter(command);
            var table = new DataTable();
            Func.FUebersicht.slKunde.Text = string.Format("{0} Datensätze gefunden.", adapter.Fill(table));
            Func.FUebersicht.dgrKunden.Columns.Clear();
            Func.FUebersicht.dgrKunden.Columns.Add(new DataGridViewCheckBoxColumn() { HeaderText = "Markieren" });
            this.Cursor = Cursors.Default;
            Func.FUebersicht.dgrKunden.DataSource = table;
          }
        }
        catch (Exception ex)
        {
          MessageBox.Show(ex.ToString());
        }
        //Func.FUebersicht.dgrKunden.DataSource = dbContext.Kunde.Select(k => k);
        Func.FUebersicht.LastCustomerSearchQuery = filter.Query;
      }
      // if (ValidateKundenNr())
      //  {
      //    var sb = new StringBuilder("SELECT * FROM Kunde WHERE ");

      //    if (tbxKundenNr.Text != "")
      //    {
      //      sb.AppendFormat("Kunde.KundeID LIKE \'%{0}%\' AND ", tbxKundenNr.Text);
      //    }

      //    if (tbxMatchcode.Text != "")
      //    {
      //      sb.AppendFormat("Kunde.Matchcode LIKE \'%{0}%\' AND ", tbxMatchcode.Text);
      //    }

      //    if (tbxName.Text != "")
      //    {
      //      sb.AppendFormat("Kunde.Name_Firma LIKE \'%{0}%\' AND ", tbxName.Text);
      //    }

      //    if (tbxOrt.Text != "")
      //    {
      //      sb.AppendFormat("Kunde.Ort LIKE \'%{0}%\' AND ", tbxOrt.Text);
      //    }

      //    if (tbxPLZ.Text != "")
      //    {
      //      sb.AppendFormat("Kunde.PLZ LIKE \'%{0}%\' AND ", tbxPLZ.Text);
      //    }

      //    if ((cbxGesperrt.CheckState == CheckState.Checked))
      //    {
      //      sb.Append("Kunde.Status = \'gesperrt\' AND ");
      //    }
      //    if ((cbxGesperrt.CheckState == CheckState.Unchecked))
      //    {
      //      sb.Append("Kunde.Status is null AND ");
      //    }

      //    if (cobKategorie.Text != "")
      //    {
      //      sb.AppendFormat("Kunde.Kategorie = \'{0}\'", cobKategorie.Text);
      //    }

      //    String query = sb.ToString();

      //    String j = query.Substring(query.Length - 4, 3);

      //    if (j == "AND")
      //    {
      //      query = query.Substring(0, query.Length - 5);
      //    }

      //    Func.FUebersicht.LastCustomerSearchQuery = query;

      //    try
      //    {
      //      using (var sqlconnection = new SqlConnection(Settings.Default.NorkaConnectionString))
      //      {
      //        var command = new SqlCommand(query, sqlconnection);
      //        var adapter = new SqlDataAdapter(command);
      //        var table = new DataTable();
      //        Func.FUebersicht.slKunde.Text = string.Format("{0} Datensätze gefunden.", adapter.Fill(table));
      //        Func.FUebersicht.dgrKunden.Columns.Clear();
      //        Func.FUebersicht.dgrKunden.Columns.Add(new DataGridViewCheckBoxColumn() { HeaderText = "Markieren" });
      //        Func.FUebersicht.dgrKunden.DataSource = table;
      //      }
      //    }
      //    catch (Exception ex)
      //    {
      //      MessageBox.Show(ex.ToString());
      //    }
      //  }
      //}
    }
예제 #2
0
        public String GetSqlQuery(KundeFilter k)
        {
            var sb = new StringBuilder();

            String whereclause;

            String sql;

            foreach (var property in k.GetType().GetProperties())
            {
                if (property.Name != "IsDefault" & property.GetValue(k,null) != null)
                {
                    if (property.PropertyType != typeof(CheckState))
                    {
                        sb.Append(property.GetValue(k, null));
                    }
                    else
                    {
                        if ((CheckState)property.GetValue(k, null) != CheckState.Indeterminate)
                        {
                            string statusClause = (CheckState)property.GetValue(k, null) == CheckState.Checked
                                                      ? "Kunde.Status = \'gesperrt\' AND "
                                                      : "Kunde.Status is null AND ";

                            sb.Append(statusClause);
                        }
                    }

                }
            }

            if (sb.Length > 0)
            {
                whereclause = sb.ToString().Substring(0, sb.Length - 4);

                sql = "SELECT KundeID, Anrede, Vorname, Name_Firma, Straße, AdressZusatz1, AdressZusatz2, PLZ, Ort, Land, Telefon2, Fax2, Mobil, Email2, Homepage, Matchcode, Kategorie, Status, Notiz FROM KUNDE WHERE " + whereclause;
            }
            else
            {
              sql = "SELECT KundeID, Anrede, Vorname, Name_Firma, Straße, AdressZusatz1, AdressZusatz2, PLZ, Ort, Land, Telefon2, Fax2, Mobil, Email2, Homepage, Matchcode, Kategorie, Status, Notiz FROM KUNDE";
                IsDefault = true;
            }

            return sql;
        }