Ok ok ich weiß ich Nerve aber ich bräuchte noch mal Hilfe.
Jetzt funktioniert das füllen, löschen soweit recht gut nur füge ich einen Datensatz hinzu und will ihn dann sofort wider löschen erschein diese Fehlermeldung:
Eine nicht behandelte Ausnahme des Typs 'System.Data.DBConcurrencyException' ist in system.data.dll aufgetreten.
Zusätzliche Informationen: Parallelitätsverletzung : Der DeleteCommand hat sich auf 0 Datensätze ausgewirkt.
Ps: Ich habe ein Access Datenbank die Datenbank1 heißt.
Darin befindet sich die Tabelle1 mit den Spalten
ID=Autowert und Name=Text
Auf dem Form habe ich eine Listbox die mir den
Inhalt der Tabelle1(Name) anzeigt.
Darunter habe ich 2 Button (Button1 zum hinzufügen
und Button2 zum löschen von Daten)
Imports System.Data.OleDb Public Class Form1
Inherits System.Windows.Forms.Form
Private conn As OleDbConnection
Private cmd As OleDbCommand
Private da As OleDbDataAdapter
Private ds As DataSet
Private dt As DataTable
Private dv As DataView 'Listbox an Datenbank/Tabelle binden
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load
conn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data" & _
"Source=Datenbank1.mdb")
cmd = New OleDbCommand("SELECT * FROM Tabelle1", conn)
da = New OleDbDataAdapter(cmd)
ds = New DataSet
conn.Open()
da.Fill(ds, "Name")
conn.Close()
dt = ds.Tables.Item("Name")
dv = ds.DefaultViewManager.CreateDataView(dt)
ListBox1.ValueMember = "Name"
ListBox1.DataSource = dv
End Sub 'Daten in Listbox/Datenbank schreiben
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Button1.Click
Dim insSQL As String = "INSERT INTO Tabelle1 (Name) VALUES (@p1)"
Dim cmd As New OleDbCommand(insSQL, conn)
cmd.Parameters.Add("@p1", OleDbType.VarChar, 20, "Name")
da.InsertCommand = cmd
Dim rw As DataRow = dt.NewRow
rw("Name") = TextBox1.Text
dt.Rows.Add(rw)
conn.Open()
Try
da.Update(dt)
conn.Close()
Catch ex As Exception
MsgBox(ex.Message)
conn.Close()
End Try
End Sub 'Daten aus Listbox/Datenbank löschen
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Button2.Click
Dim cb As New OleDbCommandBuilder(da)
Dim dr As DataRow
For Each dr In dt.Rows
If dr.Item("Name") = ListBox1.Text Then Beep() : dr.Delete()
Next
Dim cmd As New OleDbCommand("UPDATE Tabelle1 SET Name = ? WHERE [ID] =" & _
"?", conn)
cmd.Parameters.Add("@p1", OleDbType.VarChar, 30, "Name")
Dim prm As OleDbParameter = cmd.Parameters.Add("@p2", OleDbType.VarChar)
prm.SourceColumn = "ID"
prm.SourceVersion = DataRowVersion.Original
da.UpdateCommand = cmd
da.Update(ds, "Name") |