Hallo.
Um ein bisschen in die .net Sprachen einzusteigen, hab ich mir mal das Galileo Computing Tutorial angesehen und arbeite mich grade durch. Bin schon bei Kapitel 9.4 bei der Stelle ungebundene Formulare
Hab alles so gemacht, wie es im Tutorial beschrieben steht, wenn ich allerdings den Datensatz ändern möchte, oder einen neuen Hinzufügen will bekomme ich immer eine Fehlermeldung: "Eine nicht behandelte Ausnahme des Typs 'System.InvalidOperationException' ist in system.data.dll aufgetreten.
Zusätzliche Informationen: Aktualisieren erfordert einen gültigen UpdateCommand, wenn eine DataRow-Auflistung mit modifizierten Zeilen weitergegeben wird."
Hier der Quelltext:
Wenn ich die Zeile
oder
hinzufüge, erhalte ich zwar keine Fehlermeldung mehr; beim erneuten Öffnen ist Der Eintrag jedoch nicht hinzugefügt worden!
Um ein bisschen in die .net Sprachen einzusteigen, hab ich mir mal das Galileo Computing Tutorial angesehen und arbeite mich grade durch. Bin schon bei Kapitel 9.4 bei der Stelle ungebundene Formulare
Hab alles so gemacht, wie es im Tutorial beschrieben steht, wenn ich allerdings den Datensatz ändern möchte, oder einen neuen Hinzufügen will bekomme ich immer eine Fehlermeldung: "Eine nicht behandelte Ausnahme des Typs 'System.InvalidOperationException' ist in system.data.dll aufgetreten.
Zusätzliche Informationen: Aktualisieren erfordert einen gültigen UpdateCommand, wenn eine DataRow-Auflistung mit modifizierten Zeilen weitergegeben wird."
Hier der Quelltext:
Code:
Imports System.Data
Public Class frmDBAnsicht
Inherits System.Windows.Forms.Form
Dim objConnection As OleDb.OleDbConnection = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; " & "Data Source=D:\Eigene Dateien\Access Datenbanken\Galileo.mdb")
Dim objDataAdapter As OleDb.OleDbDataAdapter
Dim objDataSet As DataSet
Dim objDataView As DataView
.
.
.
Private Sub frmDBAnsicht_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
objDataView = Nothing
objDataSet = New DataSet
objConnection.Open()
objDataAdapter = New OleDb.OleDbDataAdapter _
("SELECT * FROM t_Kunden", objConnection)
objDataAdapter.Fill(objDataSet, "t_Kunden")
objDataView = New DataView(objDataSet.Tables("t_Kunden"))
With Me
.txtVorname.DataBindings.Add("Text", _
objDataView, "Vorname")
.txtZuname.DataBindings.Add("Text", objDataView, _
"Zuname")
.txtStraße.DataBindings.Add("Text", objDataView, _
"Straße")
.txtPLZ.DataBindings.Add("Text", objDataView, "Plz")
.txtOrt.DataBindings.Add("Text", objDataView, "Ort")
.chkInfopost.DataBindings.Add("Checked", objDataView, _
"Infopost")
End With
AddHandler Me.BindingContext(objDataView).PositionChanged, AddressOf Datensatz_Ändern
Me.Datensatz_Ändern(objDataView, New System.EventArgs)
End Sub
.
.
.
Private Sub butAnhängen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butAnhängen.Click
Dim objZeile As DataRow
objZeile = objDataSet.Tables("t_Kunden").NewRow()
With objZeile
.Item("Vorname") = txtVorname.Text
.Item("Zuname") = txtZuname.Text
.Item("Straße") = txtStraße.Text
.Item("Plz") = txtPLZ.Text
.Item("Ort") = txtOrt.Text
.Item("Infopost") = chkInfopost.Checked
If optFrau.Checked = True Then
.Item("Geschlecht") = 1
Else
.Item("Geschlecht") = 2
End If
End With
objDataSet.Tables("t_Kunden").Rows.Add(objZeile)
objDataAdapter.Update(objDataSet, "t_Kunden")
End Sub
Wenn ich die Zeile
Code:
objDataSet.Tables("t_Kunden).AcceptChanges
Code:
objDataSet.AcceptChanges()