Forum: ADO.NET |
Thema:
Änderungen vom DataGrid speichern |
Von:
G. Guest (
10.11.2005 11:26) |
Hallo, kann mir jemand helfen? Ich habe folgenden Code:
Private dsData As New DataSet
Friend WithEvents daData As SqlDataAdapter
Private strCmdString As String = "EXECUTE SP_MyTable" 'hier steht eine Select in einer Procedure
Private intCountData As Integer
Private Function FillGrid() As Long
'So fülle ich meine Tabelle
Dim ConnObj As New SqlConnection(PstrConnString)
ConnObj = New SqlConnection(PstrConnString)
dsData.Clear()
daData = New SqlDataAdapter(strCmdString, ConnObj)
Try
ConnObj.Open()
Catch ex As SqlException
ConnObj.Close()
ConnObj.Dispose()
MsgBox(ex.Message)
Exit Function
End Try
daData.Fill(dsData, "MyData")
intCountData = dsData.Tables("MyData").Rows.Count
Dim dvMaterial As New DataView(dsData.Tables("MyData"))
With dvMaterial
.AllowNew = False
.AllowDelete = False
End With
With Me.MyDataGrid
.DataSource = dvMaterial
.RowHeadersVisible = False
End With
ConnObj.Close()
ConnObj.Dispose()
Return intCountData
End Function
Private Sub MyDataGrid_CurrentCellChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyDataGrid.CurrentCellChanged
If dsData.HasChanges Then
'Dies geht nur wenn ich die Zeile wechsele nicht wenn ich die Spalte wechsele
Cursor.Current = Cursors.WaitCursor
Dim ConnObj As New SqlConnection(PstrConnString)
ConnObj = New SqlConnection(PstrConnString)
daData = New SqlDataAdapter(strCmdString, ConnObj)
Try
ConnObj.Open()
Catch ex As SqlException
Cursor.Current = Cursors.Default
ConnObj.Close()
ConnObj.Dispose()
MsgBox(ex.Message)
Exit Sub
End Try
Try
Dim cmdbldr As New SqlCommandBuilder(daData)
'Es wird trotz Fehler gespeichert
daData.ContinueUpdateOnError = True
daData.Update(dsData.Tables("MyData"))
Catch ex As SqlException
Cursor.Current = Cursors.Default
MsgBox(ex.Message)
End Try
'Fehler abfangen
If dsData.Tables("MyData").HasErrors = True Then
Cursor.Current = Cursors.Default
MsgBox("Es sind Fehler aufgetreten !", MsgBoxStyle.Critical, "Speichern")
End If
ConnObj.Close()
ConnObj.Dispose()
Cursor.Current = Cursors.Default
End If
End Sub
Wenn ich eine Änderung im Grid mache und die Zeile wechsele ist „dsData.HasChanges“ = True und die Änderungen werden gespeichert. Wenn ich aber eine Änderung im Grid mache und nur die Spalte wechsele ist „dsData.HasChanges“ = False, die Änderungen werden nicht gespeichert. Was mache ich falsch oder was muss ich noch für Code schreiben damit bei jeder Änderung auch direkt gespeichert wird ?
Bin für jede Hilfe dankbar....
Betreff |
Von |
Datum |
|
|
Re: Änderungen vom DataGrid speichern
Hallo, ich hatte ein ähnliches Problem. Nachdem ich das mit NUR Code nicht lösen konnte, hab ich mir die Objekte von der Toolbox gezogen und folgenden Code eingefügt:<br><br>Cursor =... |
|
|
|
|
|
Ralf
Ziola
|
03.02.2006 14:08 |
|
|
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!