| |

ADO.NET / DatenbankenParallelitä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 Function Danke 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! sevCommand 4.0 
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 Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) TOP Entwickler-Paket 
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1866.50 EUR...
Jetzt nur 979,00 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
|
|