|
| |

ADO.NET / Datenbanken| Parallelitätsverletzung | |  | | Autor: Nobbi81 | | Datum: 29.06.07 09:42 |
| Hallo Leute. Ich habe mir schon viele Hinweise zu diese Problem angeschaut Beispiel: http://www.vbarchiv.net/forum/id24_i8904t8904.html
aber ich weiche mit meinem Problem ein wenig ab.
Also das Problem liegt beim Löschen von neu hinzugefügten Datensätzen. "Parallelitätsverletzung: Der Delete Command hat sich auf 0 Datensätze ausgewirkt" "Alte Daten (meine damit, das nach dem Programmstart noch keine Änderungen im DataSet getätigt wurden) können gelöscht werden. Wie bringe ich also das DataSet auf den gleichen STand? Ich denke das ich es schon mit diesem Code mache mittels ständigem Update-Befehl. Mein Code ist der:'HINZUFÜGEN
Private Sub cmdAddNewStat_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles cmdAddNewStat.Click
Dim SQL As String = "SELECT * FROM tblStat"
Dim DR As DataRow
Dim CB As OleDbCommandBuilder
'Wird benötigt, um das Darstellen von Zellinhalten bis zum Vollenden
' der Speicherung zu sperren.
'Sonst gibt es Konvertierungsfehler
Zeile_hinzufügen_aktiv = True
DA_Stat = New OleDbDataAdapter(SQL, adoConn)
'CommandBuilder verwaltet automatisch den SQL-Befehl und deren Umsetzung
'Beispiel: Ist der Builder nicht vorhanden so werden die Eingaben jeder
' Zelle im DataGrid nicht übernommen
CB = New OleDbCommandBuilder(DA_Stat)
'--- Zugriff auf Tabelle
DT_Stat = DS_all.Tables("Station")
'Anzahl der Zeilen ermitteln
If cm_Stat.Count < 100 Then
'Freigabe für das Schreiben im DataGrid
grdStat.ReadOnly = False
' --- ANFÜGEN EINES DATENSATZES
DR = DT_Stat.NewRow()
' Füllen der Zeile
DR("identname") = "PWxx"
DR("name") = "stationsname"
DR("rufnr") = "xxx"
DR("datei") = "xxx"
DR("identnr") = "20050000"
DR("port") = "0000"
DR("run") = True
Try
'Füge die Zeile hinzu
DT_Stat.Rows.Add(DR)
'Springe zur eingefügten Zeile und markiere sie
'grdStat.CurrentRowIndex = cm_Stat.Count - 1
cm_Stat.Position = cm_Stat.Count - 1
grdStat.Select(cm_Stat.Count - 1)
'Beendet die aktuelle Bearbeitungsoperation
cm_Stat.EndCurrentEdit()
'!Update der Datenbank erfolgt in der Ereignis-Methode!
'Das Hinzufügen auch in der realen Datenbank vollziehen
DA_Stat.Update(DS_all, "Station")
index_Ereignis = 1
Catch ex As Exception
MsgBox("Es konnte kein neuer Datensatz hinzugefügt werden!" & _
Environment.NewLine & _
ex.Message, MsgBoxStyle.Critical)
End Try
Else
MsgBox("max. Stationsanzahl erreicht" & Environment.NewLine, _
MsgBoxStyle.Exclamation)
End If
End Sub
'LÖSCHEN
Private Function Zeile_löschen(ByVal DT As DataTable, ByVal DS_Name As String)
Dim SQL As String = "Select * FROM tblStat"
Dim CB As OleDbCommandBuilder
Dim DA As OleDbDataAdapter
Dim cm As CurrencyManager
cm = CType(Me.BindingContext(DS_all, DS_Name), CurrencyManager)
DA = New OleDbDataAdapter(sSQL, adoConn)
CB = New OleDbCommandBuilder(DA)
'Me.DG_sortieren(grdAnrufer, 3)
If cm.Count > 0 Then
Dim msg As String = "Wollen Sie den Datensatz wirklich löschen?"
Dim cpt As String = "FeCon Zentrale"
If MessageBox.Show(msg, cpt, MessageBoxButtons.YesNo, _
MessageBoxIcon.Question) = DialogResult.Yes Then
'Lösche die Zeile im DataGrid
cm.RemoveAt(cm.Position)
'Beendet die aktuelle Bearbeitungsoperation
cm.EndCurrentEdit()
Bearbeitungsoperation
DT = DS_all.Tables(DS_Name)
If DT.DataSet.HasChanges() Then
Try
DA.Update(DS_all, DS_Name)
Catch ex As Exception
MsgBox("Datensatz konnte nicht gelöscht werden!" & _
Environment.NewLine & _
ex.Message, MsgBoxStyle.Critical)
End Try
End If
End If
End If
End FunctionDanke für sReinschauen!! |  |
 | 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 |
  |
|
Neu! sevCoolbar 3.0 
Professionelle Toolbars im modernen Design!
Mit sevCoolbar erstellen Sie in wenigen Minuten ansprechende und moderne Toolbars und passen diese optimal an das Layout Ihrer Anwendung an (inkl. große Symbolbibliothek) - für VB und MS-Access Weitere InfosTipp des Monats Access-Tools Vol.1 
Ü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-2025 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
|
|