Wert von Textbox als Wert von Column festlegen

  • C#

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Wert von Textbox als Wert von Column festlegen

    Guten Tag liebe Community des VB-Paradise!

    Ich sollte bis nächste Woche ein Projekt für die Schule zu Ende programmieren, mein ausgewähltes Thema ist ein Haushaltsbuch.
    Bis jetzt hab ich dies so simpel wie möglich gestaltet und eine lokale Datenbank erstellt wobei ich hier den Datagrid als "Haushaltsbuch" verwende.

    Zu einfach darf es natürlich doch nicht bleiben, deshalb sollte ich einige Optionen dem hier noch hinzufügen.
    Bitte beachtet, dass ich in diesem Bereich FAST absoluter Anfänger bin.

    Hier habt ihr einen kleinen Screenshot zu meinem Programm:



    Wie ihr hier seht gibt es folgende Eingabe-Möglichkeiten:

    - Eintrag - Nummer: Quasi die ID welche von 0-X automatisch eingeschrieben werden sollte. (Versuch die Option noch zu finden :whistling: )
    - Datum (Kann durch "date" ausgewählt werden)
    - Einmalige Ausgabe
    - Einmalige Eingabe

    Nun gibt es rechts die beiden Eingabefelder für:

    - Grundkosten
    - Monatliche Einnahme

    Um dies sinnvoll zu gestalten, sollte man diese Werte einmalig speichern können damit sie dann automatisch immer bis vielleicht zur Änderung durch die Buttons (Ich weiß noch nicht ob es einfacher ist einen Button für beide Felder oder zwei Buttons zu machen) im Datagrid eingeschrieben werden. (Bei Eintragung einer Einmaligen Ausgabe werden Grundkosten und Monatliche Einnahmen automatisch mit eingetragen)

    Wäre natürlich sehr toll von euch, wenn ihr mir das erklären würdet, dass sogar ich es verstehen könnte :S

    Mit freundlichen Grüßen,
    ENGiiiN3xX
    Ahoi,

    Ich gehe jetzt einfach mal davon aus, dass ich es richtig verstanden habe :)

    ENGiiiN3xX schrieb:

    Eintrag - Nummer: Quasi die ID welche von 0-X automatisch eingeschrieben werden sollte. (Versuch die Option noch zu finden )

    Die Option heißt Aute Increment und wird in der Datenbank für die jeweilige Spalte vergeben.

    Mit deinen beiden Werten, möchtest du also Konstante schaffe und diese Speichern ?
    Leg sie in eine Config- oder Ini-Datei ab, oder lege dir eine Tabelle in der DB dafür an.
    Zb. Tabelle_Config
    {
    id INT,
    Attrib varchar()
    Value varschar()
    }

    so kannst du einen Namen in Attrib vergeben und den jeweiligen Wert in Value, und kannst dabei auch gleich noch andere Konstanten oder Konfigurationswerte speichern. Funtioniert mit einer Datei aber genauso gut.
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de
    Ich habe dazu ein paar Fragen:

    1. Was sind Grundkosten und warum sollen die bei jeder Ausgabe/Einnahme mit eingetragen werden?
    2. Gleiche Frage aber Monatliche Einnahmen?
    3. Warum seperate Felder für Einnahmen und Ausgaben? Hier wäre doch eine Darstellung mit + / - Werten Sinnvoller dann könnte man damit auch direkt ordentlich rechnen.
    4. Was soll das Feld "Eintragsnummer"? Daür nimmt man entweder eine "Autoincrement" oder einfach eine Zeilennummerierung.

    Ich würde die Darstellung aufbauen wie z.B. die Anzeige im Onlinebanking.
    Datum | Verwendungszweck | Betrag | Aktuelles Guthaben

    Ein eigenes Feld für "Grundkosten" halte ich nicht für Sinnvoll auch wenn Miete, o.ä. Monatlich abgebucht werden, sollten die als Eingenständige Posten in der Auflistung Auftauchen.
    Für Montaliche Einnahmen (Gehalt, Taschengeld o.ä.) gilt das meine Meinung nach auch.
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."

    Manü schrieb:

    Ahoi,

    Ich gehe jetzt einfach mal davon aus, dass ich es richtig verstanden habe :)

    Mit deinen beiden Werten, möchtest du also Konstante schaffe und diese Speichern ?
    Leg sie in eine Config- oder Ini-Datei ab, oder lege dir eine Tabelle in der DB dafür an.
    Zb. Tabelle_Config
    {
    id INT,
    Attrib varchar()
    Value varschar()
    }




    Das bringt doch noch mehr Probleme? Denkst du nicht?

    Da meine Grafik zurzeit nur ein Datagrid-view der einen Eingabe-Tabelle ist die ich besitze, müsste ich nun die zweite Tabelle hier mit einbringen.

    Würde das nicht einfacher mit einem Befehl funktionieren der die Value ändert und abspeichert?


    Schamash schrieb:

    Ich habe dazu ein paar Fragen:

    1. Was sind Grundkosten und warum sollen die bei jeder Ausgabe/Einnahme mit eingetragen werden?
    2. Gleiche Frage aber Monatliche Einnahmen?
    3. Warum seperate Felder für Einnahmen und Ausgaben? Hier wäre doch eine Darstellung mit + / - Werten Sinnvoller dann könnte man damit auch direkt ordentlich rechnen.
    4. Was soll das Feld "Eintragsnummer"? Daür nimmt man entweder eine "Autoincrement" oder einfach eine Zeilennummerierung.

    Ich würde die Darstellung aufbauen wie z.B. die Anzeige im Onlinebanking.
    Datum | Verwendungszweck | Betrag | Aktuelles Guthaben

    Ein eigenes Feld für "Grundkosten" halte ich nicht für Sinnvoll auch wenn Miete, o.ä. Monatlich abgebucht werden, sollten die als Eingenständige Posten in der Auflistung Auftauchen.
    Für Montaliche Einnahmen (Gehalt, Taschengeld o.ä.) gilt das meine Meinung nach auch.


    1. Ich würde es gern anders machen, jedoch ist mein Wissen zu einem Minimum begrenzt, wir haben einen Lehrer, müssen uns aber neue Programmiersprachen trotzdem selber beibringen, was natürlich sehr mühsam ist.
    2. Monatliche Einnahme und Grundkosten sollten die Konstanten bilden und direkt miteinander subtrahiert werden ( = Guthaben Pro Monat) anschließend am besten mit den Einnahmen und Ausgaben in einer bestimmten Zeitspanne (1 Monat) die Differenz bilden um so zu sehen ob man zuviel ausgegeben hat oder vielleicht sogar noch eine Guthabenspanne hätte (So sollte es funktionieren, denke aber nicht, dass dies für mich in einer Woche machbar ist deshalb versuche ich es so simpel wie möglich zu gestalten und es am besten in einem Datagried-View darzustellen)
    3. Darstellung + und - Werte? Habs mir so vorgestellt: Restliches Guthaben = Guthaben pro Monat (Monatliche Einnahme - Grundkosten) - EAusgabe + EEinnahme
    4. Sofern dies Autoincrement ist (Siehe Grafik), habe ich es bereits eingestellt, funktioniert leider nicht, das Feld wird noch möglicherweiße entfernt.

    Eine Tabelle muss nicht im ganzen ausgegeben werden. Du kannst via SQL eine Abfrage an die Tabelle geben und somit den Wert bekommen. Damit hast du dann also einen einzelnen Wert, mit dem du rechnen kannst.
    Da Grundkosten und monatliche Einnahmen, soweit ich das sehe für alle Einträge gleich bleiben, müssen die beiden Werte wirklich nicht in deiner Tabelle vorkommen. die kannst du ruhig seperat speichern und vielleicht als Info in den beiden Textboxes ausgeben.
    Ich gehe mal von dem Fall aus, du möchtest die beiden Werte ändern. Wenn die also nun in deiner Tabelle mit stehen, müssen die in den einzelnen Datensätzen geändert werden.
    Da du sie aber nur zum Berechnen eines völlig anderen Werts benötigst, wären die beiden Werte in deiner Tabelle auch völlig fehl am Platze, da sie nichts mit den Datensätzen zu tun haben (Siehe Normalisierung)
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de
    Alles klar hab jetzt eine Tabelle "Config" mit den zwei Konstanten Grundkosten und MEinahme erstellt.
    Nun soll es mit hilfe von Textbox 1 und 2 (Grundkosten und MEinnahme) und den Buttons 1 und 2 den Wert der Textboxen in den Table einfügen.

    Funktioniert wie?
    Wie bekommst du denn deine Datensätze in deinem Grid in deine Datenbank ?
    Sicher via SQL Insert
    Du nimmst also die Werte und trägst sie via SQL Update in deine Tabelle ein.

    Hast du denn bereits eine Ausgabe aus deiner Datenbank an das Grid ? ...
    Bestimmt über den Assistenten ... nun du brauchst dafür die SQL-Klasse und setzt via der SqlConnection einen SqlCommand an die Tabelle.
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de
    Hier noch als kleine Visuelle Untermalung meines Einwandes :)

    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."

    Schamash schrieb:

    Hier noch als kleine Visuelle Untermalung meines Einwandes :)

    vb-paradise.de/index.php/Attac…b7bad2fa3709245ba1fc02da1


    Sieht sehr gut aus, mit solch einer Umsetzung wäre ich schon zufrieden. Ich wünschte ich könnte das auch aus so lockerer Hand :-S.
    Das ist eigentlich die Darstellung auf welche ich hinaus möchte.

    Meinen Datagrid-View und meine Eingabe für die Datenbank bekomme ich indem ich Tables aus dem "Datenquellen" Teil herausziehe, ist das sinnvoll?

    1. Wie hast du den Buchen-Button definiert, bei mir funktioniert es nur mit Enter
    2. Wie hast du den Gehalt definiert und dabei direkt das Saldo berechnet. Bzw. generell die Rechenfunktion

    Tut mir wirklich leid wenn ich hier die einfachsten Sachen hinterfrage, bin LEICHT überfordert ^^
    Ich habe, da ich nur ein Beispiel machen wollte noch keine Datenbank angebunden.
    Die Aufgenommenen Daten könnten aber sehr einfach als xml gespeichert und auch wieder ausgelesen werden.


    So sieht mein Code aus. Der ist aber nur mal so dahingeschrieben, bitte nicht einfach übernehmen sondern nur als Anregung verstehen.

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim dt As New DataTable
    3. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    4. dt.Columns.Add("Datum", GetType(Date))
    5. dt.Columns.Add("Verwendungszweck", GetType(String))
    6. dt.Columns.Add("Betrag", GetType(Integer))
    7. dt.Columns.Add("Saldo", GetType(Integer))
    8. dgvDaten.DataSource = dt
    9. dgvDaten.Columns("Verwendungszweck").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
    10. End Sub
    11. Private Sub btnBuchen_Click(sender As Object, e As EventArgs) Handles btnBuchen.Click
    12. Dim Saldo As Integer = 0
    13. For Each row As DataGridViewRow In dgvDaten.Rows
    14. Saldo += Convert.ToInt32(row.Cells(2).Value)
    15. Next
    16. dt.Rows.Add(dtpDatum.Value.ToShortDateString, txtVerwendungszweck.Text, nudBetrag.Value, Saldo + nudBetrag.Value)
    17. txtVerwendungszweck.Text = ""
    18. nudBetrag.Value = 0
    19. End Sub
    20. End Class


    edit: Datentypen im DataTable eingefügt.
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    ich würd son Haushaltsbuch als Konto konzipieren:
    Es gibt Buchungen, wobei sich Zu- und Ab-Buchungen einfach am Vorzeichen unterscheiden.

    Und es gibt "periodische Buchungen", vergleichbar Daueraufträgen.
    Wobei meine PB ebenfalls vorzeichenbehaftet wären, also ein regelmäßig reinkommendes Gehalt lässt sich ebensogut als PB darstellen, wie Miete und Müllgebühren (GEMA zahl ich nicht :P )

    Ich hätte also ein Datenmodell mit 2 Tabellen.
    Und wie die meisten von euch sich denken ;) , würde ich das in einem typisierten Dataset modellieren, keine Datenbank verwenden, und auch kein zusätzliches Config-File .