| |
![zurück](../images/b_zurueck.gif)
ADO.NET / DatenbankenDataGridView - GetChanges | | ![](../images/trans.gif) | Autor: JuppG | Datum: 24.04.09 17:24 |
| Hallo,
ich möchte über einen Commandbuilder geänderte, gelöschte und neue Daten eines DataGridViews in einer SQl-Server-Datenbank bearbeiten.
Der beigefügte Code funktioniert dann, wenn ich nach der Änderung einer Spalte in eine andere Reihe wechsle. Bleibe ich in dem geänderten Feld oder gehe ich in eine andere Spalte derselben Reihe, erhält die GetChanges-Funktion den Wert Nothing.
Löschen und Hinzufügen funktionieren einwandfrei.
Hier der Code:
Imports System.Data.SqlClient
Public Class frmBenutzer
'---------------------------------------------------------------------------
Dim strSQL As String = "SELECT Benutzer, Nachname, Vorname, EMail, Gruppe," & _
"Niederlassung FROM Benutzer"
Dim coConnection As New SqlConnection(mfrmHaupt.strConnStr)
Dim daAdapter As SqlDataAdapter = Nothing
Dim dsDataSet As DataSet = Nothing
'---------------------------------------------------------------------------
Private Sub frmBenutzer_Load(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load
Try
Me.DataGridView1.DataSource = Nothing
dsDataSet = getDaten()
Me.DataGridView1.DataSource = dsDataSet
Me.DataGridView1.DataMember = "Benutzer"
Catch ex As Exception
MsgBox(Me.Name & " - frmBenutzer_Load - " & ex.Message, _
MsgBoxStyle.Exclamation)
Exit Sub
End Try
End Sub
'---------------------------------------------------------------------------
Public Function getDaten() As DataSet
daAdapter = New SqlDataAdapter(strSQL, coConnection)
daAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey
coConnection.Open()
Dim dsDataSet As New DataSet()
daAdapter.Fill(dsDataSet, "Benutzer")
coConnection.Close()
Return dsDataSet
End Function
'---------------------------------------------------------------------------
Private Sub SpeichernToolStripButton_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles SpeichernToolStripButton.Click
Dim dsDataset1 As DataSet = dsDataSet.GetChanges()
If dsDataset1 IsNot Nothing Then
Try
setDaten(dsDataset1)
dsDataSet.Merge(dsDataset1)
dsDataSet.AcceptChanges()
Catch ex As Exception
dsDataSet.RejectChanges()
MessageBox.Show(ex.Message, "Fehler")
End Try
End If
End Sub
'---------------------------------------------------------------------------
Public Sub setDaten(ByRef dsDataset As DataSet)
Dim cmdBuilder As New SqlCommandBuilder(daAdapter)
coConnection.Open()
daAdapter.Update(dsDataset, "Benutzer")
coConnection.Close()
End Sub Ein Beispielprogramm, das mit OleDB arbeitet, funktioniert einwandfrei.
Kennt jemand dieses Problem und auch die Abhilfe?
Ich arbeite mit VB Professional 2005 und dem SQL-Server 2005 | ![](../images/trans.gif) |
![](../images/48x48/info.gif) | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
![nach oben](../images/b_top.gif) ![zurück](../images/b_zurueck.gif) |
|
Neu! sevCommand 4.0 ![Professionelle Schaltflächen](../images/werbung/sevcmd3_120x95.gif)
Professionelle Schaltflächen im modernen Design!
Mit nur wenigen Mausklicks statten auch Sie Ihre Anwendungen ab sofort mit grafischen Schaltflächen im modernen Look & Feel aus (WinXP, Office, Vista oder auch Windows 8), inkl. große Symbolbibliothek. Weitere InfosTipp des Monats Access-Tools Vol.1 ![Access-Tools CD Vol.1](../images/werbung/apvol1_68x100.gif)
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|