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:
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:
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ß
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
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
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ß