Announcement

Collapse
No announcement yet.

DB anhand DataSet Updaten

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

  • DB anhand DataSet Updaten

    Hallo an alle,

    folgendes Umgebung erst einmal:

    Entwicklungsumgebung: Visual Studio 2005 (.NET 2.0)
    Datenbank: Microsoft SQL 2000
    Anbindung: OLEDB

    Ich versuche über ein DataSet mein DataGridView in meiner Form zu befüllen.
    Funktioniert auch einwandfrei:

    Das sieht so aus:

    Code:
      Public Function FillDataSetIndex(ByVal argSConString As String, ByVal sqlCommand As String, ByVal Dataset2Fill As DataSet, ByVal DBTable As String) As Boolean
        Try
          Dim lResult As Boolean
    
          'SQL Connection erstellen
          lResult = CreateDBConnection(argSConString)
    
          Dim command As New OleDbCommand(sqlCommand, gOLEDB)
          INDEXadapter = New OleDbDataAdapter
          INDEXadapter.SelectCommand = command
    
          Dim cb As OleDbCommandBuilder = New OleDbCommandBuilder(INDEXadapter)
    
          INDEXadapter.Fill(Dataset2Fill, DBTable)
    
          Return True
    
        Catch ex As Exception
          gLogging.log.Error("ERROR: FillDataSetIndex() - EXCEPTION: " + ex.Message)
          Return False
        Finally
          gLogging.log.Debug("SUCCESS: FillDataSetIndex()")
        End Try
    
      End Function
    Ich hab dafür eine seperate Funktion gebaut wo man nur das Dataset übergeben muss. Das Objekt "INDEXadapter" ist global in der Klasse deklariert.

    Alles super.
    Ich binde dann das Dataset ganz normal das das DataGridView.

    Nun zu meinem Problem.
    Wenn ich versuche eine Zelle zu Editieren, wird die Änderung nicht in die DB übernommen. Dazu hab ich folgende Funktion geschrieben:

    Code:
      Public Function UpdateIndexDS(ByVal Dataset2Update As DataSet) As Boolean
        Try
          ' Create the insert, delete and update statements automatically
          Dim cb As New OleDbCommandBuilder(INDEXadapter)
    
          ' Retrieve just the changed rows
          Dim dsChanges As DataSet = Dataset2Update.GetChanges()
    
          If Not dsChanges Is Nothing Then
            ' Update the database
            INDEXadapter.Update(dsChanges)
    
            ' Accept the changes within the DataSet
            Dataset2Update.AcceptChanges()
          End If
    
          Return True
        Catch ex As Exception
          gLogging.log.Error("ERROR: UpdateIndexDS() - EXCEPTION: " + ex.Message)
          Return False
        Finally
          gLogging.log.Debug("SUCCESS: UpdateIndexDS()")
        End Try
      End Function
    Auch hier wieder übergebe ich mein Dataset an die Funktion. Es kommt kein Fehler sondern das objekt "dsChanges" ist Nothing. Was ja eigentlich nicht sein sollte. Wenn ich nämlich mein DataSet vor der If-Schleife im Quickview ansehe, dann seh ich auch die geänderte Zelle.
    Da er aber immer Nothing zurückgibt, läuft er halt auch gar nicht in die If um den Adapter Up zu Daten.

    Was mache ich falsch?

    Für jede kleine Hilfe wäre ich sehr dankbar.

    gruß
Working...
X