Wie kann ich einen in My.Settings gespeicherten Wert in einen neuen Datensatz eintragen?

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von MR_NMS.

    Wie kann ich einen in My.Settings gespeicherten Wert in einen neuen Datensatz eintragen?

    Hi!
    Wie kann ich, einen einmal eingetragenen Wert der zur Zeit in My.Settings gespeichert wird, immer wieder in einen neuen Datensatz automatisch eintragen?

    Zur Zeit speichere ich den Filiale so:

    VB.NET-Quellcode

    1. My.Settings.Filiale = FilialeTextBox.Text
    2. My.Settings.Save()
    3. My.Settings.Reload()


    Der dort gespeicherte Name soll automatisch zu einem neuen Datensatz im DGV geschrieben werden!





    Schon mal DANKE!
    Die Settings werden sowieso automatisch beim Schließen der Anwendung gespeichert.
    Das Save und Reload mache da also weg. Das brauchst du da nicht...
    Mit Project/Eigenschaften/Anwendung->'My.Settings beim Herunterfahren Speichern' anklicken (ist eigentlich standardmäßßig voreingestellt!)

    MR_NMS schrieb:

    Der dort gespeicherte Name soll automatisch zu einem neuen Datensatz im DGV geschrieben werden!
    Wo werden deine Daten gespeichert und benutzt du ein datengebundenes DGV?

    MR_NMS schrieb:

    über ein datengebundenes DGV gespeichert
    Du meinst wohl, dass deine Daten nicht im DGV gespeichert werden - sondern in der Tabelle, die mit dem DGV verbunden ist.
    Und ich vermute, dass diese Tabelle in einem typisierten Dataset zu hause ist? An welcher Datenquelle ist dein DGV gebunden?

    VB1963 schrieb:

    Die Settings werden sowieso automatisch beim Schließen der Anwendung gespeichert.
    sofern in VB der (defaultmäßig aktive) Haken aktiviert ist. ;)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Guten Morgen zusammen,
    das mit den My.Settings habe ich angepasst.
    Die Daten werden in einer Tabelle in einem typisierten Dataset an das DGV gebunden.
    Speichern der Daten in eine XML Datei.

    VB.NET-Quellcode

    1. Me.UmsatzdatenDataSet.WriteXml(_DataFile.FullName)


    Habe schon versucht die TextBox über My.Settings zu füllen und an die UmsatzdatenDataTableBindingSource zu binden.
    Das klappt aber nicht!

    Matthias

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

    MR_NMS schrieb:

    Habe schon versucht die TextBox über My.Settings zu füllen und an die UmsatzdatenDataTableBindingSource zu binden.
    Was genau hast Du da getan?
    Es genügt, der Text-Property im Designer ein String-Settings zuzuweisen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    MR_NMS schrieb:

    Habe schon versucht die TextBox über My.Settings zu füllen und an die UmsatzdatenDataTableBindingSource zu binden.
    Also, wenn ich dich richtig verstehe - möchtest du in einer TextBox den Inhalt einer Column der aktuell ausgewählten Datarow anzeigen (Databindings als Detailview) und gleich zeitig die TextBox an eine Settingseigenschaft binden...
    Das geht zeitgleich im Formeditor nicht: du kannst entweder Databinding oder Bindung an die Settings einstellen
    Und dann, wenn du neue Daten anfügen willst, sollen die Werte von den Settings als Standardwerte hergenommen werden - oder?

    MR_NMS schrieb:

    Im Designer kann ich ja in FilialeColumn einen festen DefautValue Wert hinterlegen, aber der ist ja wie gesagt fest.
    Warum meinst du, dass er fest ist?
    Den kannst du ganz einfach per Code festlegen...(siehe Zeile #2 und #7)
    Das Ganze könnte wie folgt funktionieren...

    VB.NET-Quellcode

    1. Private Sub btnAddNew_Click(sender As Object, e As EventArgs) Handles btnAddNew.Click
    2. Me.DeinDataSet.DeineTabelle.DeineColumn.DefaultValue = My.Settings.DeinColumnDefaultValue
    3. Me.DeineTabelleBindingSource.AddNew()
    4. End Sub
    5. Private Sub DeineTabelleBindingSource_PositionChanged(sender As Object, e As EventArgs) Handles DeineTabelleBindingSource.PositionChanged
    6. Dim rw = DirectCast(DirectCast(DeineTabelleBindingSource.Current, DataRowView).Row, DeineTabelleRow)
    7. My.Settings.DeinColumnDefaultValue = rw.DeineColumnInDeinerTabelle
    8. End Sub

    MR_NMS schrieb:

    Kann man das so lassen, oder gibt es noch bessere Varianten?
    Trenne bitte die GUI von den Daten! Das DGV gehört nurb zur Visualisierung und Interaktion deiner Daten. Wenn du per Code deine Daten ändern möchtest, dann geschiehtb das ausschließlich in der Tabelle, wo sie sich befinden! siehe einen Post weiter oben...