Announcement

Collapse
No announcement yet.

Große Datenmengen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Große Datenmengen

    hab c# mit mysql db-anbindung über .Net/MySql Connectctor
    ich wollte mit einer funktion das er die bereits eingegebene artikelnummer nimmt
    und solange -1 oder +1 zählt bis er was findet
    letzterartikel = (int.Parse(letzterartikel) - 1).ToString();
    for (int z = letzterartikel.Length; z < 6; z++)
    {
    letzterartikel = "0" + letzterartikel;
    }
    query.CommandText = "SELECT artikelnr FROM grundartikel WHERE artikelnr = '" + letzterartikel + "'";
    while (query.ExecuteScalar() == null)
    {
    letzterartikel = (int.Parse(letzterartikel) - 1).ToString();
    for (int z = letzterartikel.Length; z < 6; z++)
    {
    letzterartikel = "0" + letzterartikel;
    }
    query.CommandText = "SELECT artikelnr FROM grundartikel WHERE artikelnr = '" + letzterartikel + "'";
    }
    textBox6.Text = letzterartikel;
    Problem ist als vorgegebene Tabelle hab ich über die Artikelnummer keine Rechte wie diese vergeben werden, so habe ich einen ganz üblen Sprung
    von 083905 bis 100000 weil dazwischen keine vergeben sind

    also stellt sich das Problem wenn jemand den grundartikel 100000 eingibt und dann den vorherigen zu bekommen mit der zurück taste weil der den nicht erst raussuchen möchte wie ich das lösen kann ohne das ich ne kaffepause einlegen kann

    hoffe ihr könnt mir helfen

  • #2
    ich wollte mit einer funktion das er die bereits eingegebene artikelnummer nimmt
    und solange -1 oder +1 zählt bis er was findet

    versuche es bitte noch mal!

    Wer soll was nehmen?

    Comment


    • #3
      [highlight=sql]
      SELECT max(artikelnr)
      FROM grundartikel
      WHERE artikelnr < "hierKommtDeinArtikelNummerHin"
      GROUP BY artikelnr
      [/highlight]

      Damit findest Du die "vorhergende" Artikelnummer. Artikel IDs runterzählen und für jede ID eine einzelne Abfrage zu stellen ist glaub ich das uneffektivste überhaupt

      Comment


      • #4
        Das solltest du ausschließlich in SQL machen.
        Den Vorgänger zu einem Artikel erhältst du mit

        [Highlight=SQL]SELECT max(artikelnr) FROM grundartikel WHERE artikelnr < meineLiebeAktuelleArtikelNr[/Highlight]

        bzw. den Nachfolger mit

        [Highlight=SQL]SELECT min(artikelnr) FROM grundartikel WHERE artikelnr > meineLiebeAktuelleArtikelNr[/Highlight]

        Wobei ich mich Frage was der Vorgänger/Nachfolger eines Artikels für eine Bedeutung hat Wofür brauch man das? Gibt es eine Zusammenhang zwischen den Artikeln?

        Comment


        • #5
          erstmal danke für die hilfe

          ein zusammenhang besteht zwischen den artikeln so nicht ist halt nur wenn die 2 oder 3 artikel weiter wollen können die besser 2-3 mal den knopf drücken als erst textbox anklicken neu eingeben enter

          die müssen ja jeden artikel neu etikettieren etc etc

          wenn dann aber soein sprung dazwischen ist ist das fü den user blöd wegen sowas 5 zu warten

          Comment


          • #6
            Na das machen die SQL Skripte oben doch! Wenn Du noch <= anstatt nur < schreibst, dann erwischst Du auch genau den falls dieser existiert.

            Comment

            Working...
            X