MySQL: Fehlerhafte Suchanfrage?

Hallo,

ich stehe vor einer Herausforderung mit einer Windows Forms-Anwendung, die ich entwickelt habe, um Tageszeitraumstatistiken für Benutzer anzuzeigen. In dieser Anwendung gibt es ein Formular mit dem Namen TagesZeitraumStatistik, das darauf ausgelegt ist, Benutzern ihre Umsätze basierend auf ihnen zugewiesenen PIDs (Produkt-IDs) anzuzeigen.

Jedoch stieß ich auf ein Problem: Das Programm lädt nicht alle PIDs korrekt. Insbesondere scheinen einige Unter-PIDs übersprungen zu werden.

Bei der Fehlersuche mittels Debugging und Setzen von Breakpoints konnte ich beobachten, dass initial alle PIDs korrekt erfasst werden. Allerdings überspringt das Programm im weiteren Verlauf bestimmte PIDs, ohne dass ein offensichtlicher Grund dafür erkennbar ist. Leider komme ich bei dem Problem nicht wirklich weiter. Vielleicht kann mir ja hier jemand helfen.

Hier die Codeausschnitte:

public TagesZeitraumStatistik(string username, bool isAdmin, List<string> userPIDs)
{
  InitializeComponent();
  InitializeDataGridView();
  FillYearComboBox();

  this.username = username;
  this.isAdmin = isAdmin;
  this.userPIDs = userPIDs;
  this.Load += new EventHandler(TagesZeitraumStatistik_Load);

  monthCalendar1.DateSelected += MonthCalendar1_DateSelected;
  comboBoxYear.SelectedIndexChanged += ComboBoxYear_SelectedIndexChanged;
  printDocument1.PrintPage += new PrintPageEventHandler(PrintDocument1_PrintPage);

  // TextBox für den PID-Filter erstellen und konfigurieren
  textBoxPidFilter = new TextBox();
  textBoxPidFilter.Location = new Point(10, 10);
  textBoxPidFilter.Size = new Size(150, 20);
  this.Controls.Add(textBoxPidFilter);

  // LoadData-Methode aufrufen, um die Daten zu laden
  LoadData();
}

private void LoadData(DateTime? startDate = null, DateTime? endDate = null, string pidStartsWith = null)
{
  try
  {
    List<string> pidFilterList = new List<string>();

    if (!string.IsNullOrEmpty(pidStartsWith))
    {
      pidFilterList.Add(pidStartsWith);
    }

    DataTable statistikData = dbManager.GetTageszeitraumStatistikData(startDate, endDate, pidFilterList, userPIDs);
    dataGridView1.AutoGenerateColumns = false;
    dataGridView1.DataSource = statistikData;
    UpdateTotalSales(statistikData);
    UpdateSalesLabel(startDate, endDate);
  }
  catch (Exception ex)
  {
    MessageBox.Show(ex.Message, "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error);
  }
}

public DataTable GetTageszeitraumStatistikData(DateTime? startDate = null, DateTime? endDate = null, List<string> pidPrefixes = null, List<string> userPids = null)
{
  DataTable dt = new DataTable();

  using (MySqlConnection conn = new MySqlConnection(connectionString))
  {
    try
    {
      conn.Open();
      string query = @"
        SELECT Datum, FreierText1 AS PID, Name AS Nachname, EuroNetto, Belegnummer
        FROM BELEG 
        WHERE 1=1";

      if (startDate.HasValue)
      {
        query += " AND Datum >= @StartDate";
      }

      if (endDate.HasValue)
      {
        query += " AND Datum <= @EndDate";
      }

      if (pidPrefixes != null && pidPrefixes.Any())
      {
        query += " AND (";

        for (int i = 0; i < pidPrefixes.Count; i++)
        {
          query += $"FreierText1 LIKE @Pid{i}";

          if (i < pidPrefixes.Count - 1)
          {
            query += " OR ";
          }
        }

        query += ")";
      }

      if (userPids != null && userPids.Count > 0)
      {
        string pidsCondition = string.Join(",", userPids.Select(pid => $"'{pid}'"));
        query += $" AND FreierText1 IN ({pidsCondition})";
      }

      using (MySqlCommand cmd = new MySqlCommand(query, conn))
      {
        if (startDate.HasValue)
        {
          cmd.Parameters.AddWithValue("@StartDate", startDate.Value.Date);
        }

        if (endDate.HasValue)
        {
          cmd.Parameters.AddWithValue("@EndDate", endDate.Value.Date);
        }

        if (pidPrefixes != null && pidPrefixes.Any())
        {
          for (int i = 0; i < pidPrefixes.Count; i++)
          {
            cmd.Parameters.AddWithValue($"@Pid{i}", $"{pidPrefixes[i]}%");
          }
        }

        using (MySqlDataAdapter da = new MySqlDataAdapter(cmd))
        {
          da.Fill(dt);
        }
      }
    }
    catch (MySqlException ex)
    {
      throw new Exception($"Fehler beim Abrufen der Daten: {ex.Message}", ex);
    }
  }

  return dt;
}
C Sharp, Code, Datenbank, MySQL, Programmiersprache, Visual Studio, Algorithmus
Java: Possible lossy conversion from double to int?

Guten Tag,

ich möchte ein Bild anzeigen, die Position dabei aber in einem double angeben. currentDrawing.x / y sind bereits double Werte. Weiß jemand, warum dieser Fehler aufkommt? Oder kann die Methode nur Integer annehmen? Vielen Dank schonmal!

public void startdraw(List world) {
        JPanel panel = new JPanel() {
            @Override
            protected void paintComponent(Graphics g) {
                super.paintComponent(g);
                BufferedImage buffer = new BufferedImage(frame.getWidth(), frame.getHeight(), BufferedImage.TYPE_INT_ARGB);
                Graphics bufferGraphics = buffer.getGraphics();
                world.toFirst();
                while (world.getContent() != null) {
                    Block currentDrawing = (Block)world.getContent();
                    if (currentDrawing != null) {
                        bufferGraphics.drawImage(currentDrawing.texture, currentDrawing.x*50.0, currentDrawing.y*50.0, (int)50, (int)50, null);
                    }
                    world.next();
                }
                g.drawImage(buffer, 0, 0, null);
            }
        };


        frame.add(panel);
        frame.setVisible(true);
    } 
Bild zum Beitrag
Fehler, Java, Code, Programmiersprache, Swing, double, Integer, Java Swing
Ab wann beginnt Full-Stack Entwicklung im Webbereich und wie sieht es mit dem Gehalt aus?

Hallo liebe Community,

kurze Einleitung:

Ich bin Junior Webentwickler seit zirka 1 Jahr bei einer (relativ) kleinen Firma. Wir arbeiten viel mit Freelancer zusammen.

Ich bin mit HTML / CSS / JS eingestiegen und programmiere hier jetzt hauptsächlich über Wordpress die Websiten und Plugins.

Dazu wird bekannterweise → php genutzt. Daher geht hier Jquery, PHP, JS, MySQL, Git/hub und das Wissen in vielen bewährten Plugins und derer Programmierung für erweitere Funktionen einher.

Daher mache ich Backend und Frontend Entwicklung gleichermaßen. Das kann ich auch schon relativ gut, ich musste hier mir alles selbst beibringen und hab hauptsächlich mit Udemy und unserer tollen AI ChatGPT Hilfe mir alles beigebracht.
Die Codereviews hab ich mir von der AI machen lassen, Fehler aufzeigen, den Code bewerten und Verbesserungsmöglichkeiten zeigen.

So bin ich nun der Meinung, ein relativ solides Wissen angeeignet zu haben.
Jetzt zu meinen Fragen:

Frage 1:
Ab wann dürfte ich mich Full-Stack-Entwickler nennen? Ich hab großen Respekt vor erfahrenen Full-Stack-Entwicklern, weil da eine Menge zugehört. Aber ist es schon Full-Stack, wenn man Frontend und Backend macht?

Frage 2:
Ich arbeite in MV und bekomme noch 2600 € brutto gezahlt. Es ist noch relativ niedrig, weil ich zu Anfang viel gelernt habe, die ersten Monate, um den Anforderungen gerecht zu werden. 2400 € in den ersten 6 Monaten und bis jetzt (12. Monat) 2600.

Was wäre so eine faire Preisspanne? Die Firma gibts bald seit 10 Jahren und wir sind kein Start-up mehr. Auch läuft es gerade gut und ich konnte alle Aufgaben bewältigen, die mir seither gestellt wurden. Wenn ich auch für manche länger gebraucht habe (aber dafür bin ich ja auch ein Junior). Mich würde interessieren, wo es fair wäre? Ich möchte bald in die Gehaltsverhandlung gehen und wäre sehr dankbar über Ratschläge und eure Meinungen.

Liebe Grüße

Beruf, HTML, Webseite, programmieren, CSS, JavaScript, HTML5, Entwicklung, PHP, Programmiersprache, Webdesign, Webentwicklung, Backend, Frontend

Meistgelesene Beiträge zum Thema Programmiersprache