DevTrain Startseite Advanced Developers Conference vom 14.-15. Februar 2011  
  
  
SUCHEN:  
ARTIKEL ONLINE: 525   

Kategorien
.NET
Datenbanken
Web
XML

Allgemein
Camp
Foren
Events
Persönliche Einstellungen
Registrieren
Prämien Shop
Kontakt
Impressum
Über DevTrain

Autoren



 

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!

 Betreff:
 Nachricht: Den Beitrag finden Sie nun unter: http://beta.devtrain.de/foren Die Benutzerdaten und Foreninhalte von beta.devtrain.de und www.devtrain.de sind die selben.
Sie können sich dort sogar per RSS über neue Inhalte informieren lassen.
Bei Problemen bitte direkt Mail an asp [AT] ppedv.de.

 Signatur:

  



Login
Username:


Passwort:






Passwort vergessen?

Visual Studio 1 Magazin

© Copyright 2003 ppedv AG