Funktion findet Felder zum Vorbelegen von Werten in DataGridView nicht

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

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von frankseipferd.

    Funktion findet Felder zum Vorbelegen von Werten in DataGridView nicht

    Hallo,

    wenn ich in der DataGridView einen neuen Datensatz anlegen möchte, würde ich gerne einige Felder mit Standardwerten vorbelegen.
    Ich habe dafür folgene Prozedur geschrieben:

    VB.NET-Quellcode

    1. Private Sub dataGridView_DefaultValuesNeeded(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewRowEventArgs) Handles DataGridView.DefaultValuesNeeded
    2. With e.Row
    3. .Cells("Jahr").Value = pblintJahr
    4. .Cells("cboUmsatzartID").Value = 1
    5. .Cells("Zyklus").Value = "M"
    6. .Cells("cboWaehrungID").Value = 1
    7. .Cells("MwStSatz").Value = 0.19
    8. End With
    9. End Sub


    Sobald ich einen neuen Datensatz anlegen möchte, bekomme ich folgenden Fehler:
    {"Die Spalte Jahr kann nicht gefunden werden." & vbCrLf & "Parametername: columnName"}

    Er erkennt keines der definierten Felder, die ich vorbelegen möchte. Sie heissen in der DGV jedoch exakt so, wie auch in der entsprechenden DataTable. Dazwischen ist noch eine BindingSource.

    Weis jemand, weshalb die Felder nicht erkannt werden?

    frankseipferd schrieb:

    Sobald ich einen neuen Datensatz anlegen möchte
    Trenne Quelle und Anzeige.
    Bei einem blanken DGV funktioniert das so.
    Wenn Du dein DGV mit einer DataTable befüllst, solltest Du der Zeile der Tabelle diese Werte geben und die Tabelle dann einfach vom DGV per DataSource anzeigen lassen.
    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!
    Danke für Deine Info.

    Ich habs jetzt anders hinbekommen:

    Ich initialisiere die Default Eigenschaft der Spalten der DataTable beim Laden der Form:

    VB.NET-Quellcode

    1. DataSet.tblUmsaetzePN.Columns("Jahr").DefaultValue = pblintJahr
    2. DataSet.tblUmsaetzePN.Columns("UmsatzartID").DefaultValue = 1
    3. DataSet.tblUmsaetzePN.Columns("Zyklus").DefaultValue = "M"
    4. DataSet.tblUmsaetzePN.Columns("WaehrungID").DefaultValue = 1
    5. DataSet.tblUmsaetzePN.Columns("MwStSatz").DefaultValue = 0.19


    Funktioniert :)