DataGridView Preis in Label ausgeben

  • VB.NET
  • .NET (FX) 1.0–2.0

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von mrMo.

    DataGridView Preis in Label ausgeben

    Hallo,
    Ich programmiere eine Kassensoftware und wenn ich die Artikelnummer eingebe, dann soll er es aus der DataGridView suchen und mir dann den Betrag anzeigen in ein Label. Die Spalte mit den Preis heißt = "Preis". Wie bekomme ich es jetzt hin, das er mir den Betrag anhand der Artikelnummer anzeigt und es in ein Label ausgibt. Die Artikelnummer gibt man in eine Textbox ein und dann klick man auf den Button "Enter". Und dann soll er das Artikel suchen anhand der Nummer und den Betrag in ein Label ausgeben.
    Wo genau kommst du nicht weiter? Poste doch mal deinen Code, dann können wir dir besser helfen.

    Kommen solche Daten nicht eher aus einer DB also aus einem DataGridView? Wie dem auch sei. Du brauchst eine Schleife die durch dein DataGrid geht. Hier würde ich die For Each Schleife nehmen.

    So in der Richtung:
    For Each row As DataGridViewRow In DataGridView1.Rows
    'hier prüfen ob Artikelnummer mit der TextBox Eingabe übereinstimmen und Wert aus Spalte Preis auslesen.
    Next

    Besser wäre es natürlich nicht das Grid, sondern dessen DataSource(z.B. DataTable) zu durchsuchen. Controls dienen nur zur Anzeige von Daten. Meine Botschaft: Trenne deine BusinessLogik von der GUI.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Ich arbeite mit ein DataSet und möchte jetzt wie in eine Kassensoftware, wenn du die Artikelnummer eingibst, das der Preis dann angezeigt wird, anhand der Artikelnummer.
    Beispiel:
    Artikelnummer
    Bezeichnung
    Preis
    11Apfel2,50
    135Birne1,50

    Und wenn ich jetzt die Nummer 11 eingebe als Artikelnummer, dann soll dort in Label als Preis folgendes stehen...
    Betrag: 2,50 € und wenn man dann noch die Nummer 135 hinzufügt, dann soll als Preis folgendes stehen Betrag: 4,00 €
    Und dafür brauche ich jetzt den Code, damit dies Funktioniert.
    Du hast immer noch nicht verraten, wie du die Daten abspeicherst. Ich würde dir raten, ein Sql Database zu nehmen und dann ein Tableadapter dazwischen zu packen (Datasource) und schön mit Sql querys arbeiten. Da hast du viel mehr möglichkeiten als nur in der Datatable zu suchen.
    Hier könnte meine Signatur stehen.
    Deine Code hast du auch noch nicht gepostet... Ohne weitere Infos wird helfen schwer für uns.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Ich speicher die Daten in .xml ab. Und für die Datenbank habe ich nur die Funktion, das es die gespeicherten Daten abruft. Aber in eine andere Form und nicht in der Hauptform. Also ich habe einmal die "Kasse" als Form und einmal "Artikel" als Form. Und wenn ich Artikel öffne, dann ruft er die .xml ab. Und ich möchte, wenn ich die Nummer eingebe, das er in der Form "Artikel" schaut, ob der Artikel vorhanden ist und dann den Preis in den Label anzeigt. Also wie eine Kasse es halt auch macht.

    mrMo schrieb:

    Deine Code hast du auch noch nicht gepostet... Ohne weitere Infos wird helfen schwer für uns.

    -> Willst du uns nicht zeigen hm...

    guttmannoliver schrieb:

    Und ich möchte, wenn ich die Nummer eingebe, das er in der Form "Artikel" schaut, ob der Artikel vorhanden ist und dann den Preis in den Label anzeigt. Also wie eine Kasse es halt auch macht.

    So macht das eine Kasse aber nicht... die holt die Daten direkt aus einer Datenbank, nicht aus irgend welchen Steuerelementen. Das wäre auch meine Empfehlung.

    Hier ein kleiner schneller Tipp von mir falls du immer noch nicht in der DB suchen willst:

    VB.NET-Quellcode

    1. Private Sub cmdSuchen_Click(sender As Object, e As EventArgs) Handles cmdSuchen.Click
    2. For Each row As DataRow In dtArtikel.Rows
    3. If row(0).ToString() = txtArtikelnummerSuche.Text Then
    4. lblPreis.Text = row(2).ToString()
    5. End If
    6. Next
    7. End Sub


    Edit: Vielleicht machst du uns auch nein Screenshot von deinem Programm, ich denke du hast dort bereits einen Logik Fehler drin.

    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „mrMo“ ()

    Du musst deine DataSource (DataTable) durchsuchen, nicht dein DataGrid(Steuerelement). Siehe mein Codebeispiel oben.

    Edit: Es wäre gut gewesen, hättest du von anfang an die Stelle (Code) gepostet, die dir Probleme bereitet. Dann hätten wir dir schnell helfen können.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „mrMo“ ()

    Wie kommen denn die Artikel in dein DataGrid? Poste mal den Code dazu.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Dein Fehler den du oben gepostet hast hat aber gar nichts mit deiner Datenbank zu tun...

    Sprechen wir denn hier von einer echten Datenbank(Access, SQL-Server, MySql, etc), oder denkst du das die Tabelle in deiner Form eine Datenbank ist?

    Ein Tipp:
    Trenne BusinessLogik von der GUI (auslagern in Methoden und Klassen) sonst schreibst du nur Spaghetticode der irgendwann nicht mehr wartbar ist.

    Bei der nächsten Frage poste deinen Code und das genaue Problem.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen