vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

ADO.NET / Datenbanken
DataGridView - GetChanges 
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
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
DataGridView - GetChanges2.504JuppG24.04.09 17:24
Re: DataGridView - GetChanges1.073ModeratorRalf Ehlert24.04.09 18:58
Re: DataGridView - GetChanges1.014ModeratorDaveS24.04.09 19:27
Re: DataGridView - GetChanges1.060JuppG27.04.09 10:32
Re: DataGridView - GetChanges997ModeratorDaveS27.04.09 13:43

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

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