Announcement

Collapse
No announcement yet.

Forms mit Werten befüllen

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

  • Forms mit Werten befüllen

    Hallo Leute ,

    ich habe ein Riesenproblem.

    Ich arbeite mit VB2008. Zur Vorbereitung der Datenanbindung habe ich den Datasetdesigner von VB verwendet und da ca. 35 Tableadapter definiert.
    In meinen Masken verwende ich Bindingsources. Über die Desingdefinition lege ich Datasource = meinem Dataset (entsprechend Definition im Datasetdesigner), Datamember=entsprechende Tabelle aus Dataset.

    Damit wird dann ganz automatisch eine Fillanweisung im Load-Event der Form erzeugt
    Code:
     'TODO: Diese Codezeile lädt Daten in die Tabelle "DS.tblmeineTabelle". Sie können sie bei Bedarf verschieben oder entfernen.
    Me.TblMeineTableAdapter.Fill(Me.DS.tblMeineTabelle)
    Dann definiere ich einen Commandbuilder, um die Datenänderungen gestzuhalten
    Code:
      Dim cmb As DbCommandBuilder = New SqlCommandBuilder
      cmb.DataAdapter = TblMeineTabelleTableAdapter.Adapter
    Natürlich habe ich die Maske schön mit Feldern bestückt und die Databindings aus meiner Bindinsource zugewiesen.
    Nach der Änderung der Daten speicher ich mit folgender Prozedur

    ....
    Code:
      Me.bs_MeineTabelle.EndEdit()
            Dim dt1 As DataTable = Me.DS.tblMeineTabelle.GetChanges
            Try
                If dt1 IsNot Nothing Then
                    MeineTabelleTableAdapter.Update(DS)
                End If
            Catch ex As DBConcurrencyException
                MsgBox("Der Datensatz wurde durch einen anderen User geändert. Ein Neuaufruf ist erforderlich!", MsgBoxStyle.Information + MsgBoxStyle.OkOnly, "Datenkonflikt")
    usw..
    Probleme:
    1.
    Die Änderungen werden gespeichert - das kann ich in der Datenbank nachvollziehen. Aber bei einem Neuaufruf der Maske werden die Daten nicht bzw. nicht vollständig angezeigt? Das wird auch nicht besser, wenn ich die Applikation schließe und dann neu starte.
    Zugegeben, die zugrunde liegende Tabelle hat 181 Spalten. Allerdings konnte ich in VB keine Einschränkung der Methoden finden, wenn die Spaltenzahl so enorm ist.

    2.
    Manchmal erkennt der Bursche die gemachten Änderungen gar nicht. Also mein dt1 bleibt nothing.

    Mit der Bitte um Unterstüztung und so weiter --- Vielen Dank

  • #2
    Aktualisieren Datatable

    Hallo,

    also mein Problem war wahrscheinlich, dass durch Tabellenänderungen (neue Spalten in der Datenbank) der TableAdapter nicht mehr ok wahr. Ich hatte zwar die Konfiguration des Adapters aufgerufen und die neuen Spalten hinzugefügt, aber das hat wohl nicht gereicht. Jetzt habe ich das ganze Objekt entfern und neu hinzugefügt. Und ob Ihr es glaubt oder nicht - nun funkt es wieder.

    Comment

    Working...
    X