Hallo Leute,
ich versuche gerade eine Mitgliederverwaltung zu erstellen. Zur Seite steht mir das Buch Datenbankprogrammierung mit Visual Basic 2008. Um dabei was zu lernen, verzichte ich auf die Generatoren, die einem ja eine Menge Arbeit abnehmen können.
Ich habe also eine Datenbank "Mitgliederliste.mdb", die ich in eine DataTable einlese und verschiedene Textboxen und ein Datagridview anbinde. Die Anzeige und das Auswählen klappen auch wunderbar. Auch das Löschen, Ändern und Hinzufügen klappt. Um diese Änderungen aber zu sichern, muß der "speichern" Button gedrückt werden.
Das ist die Fehlermeldung nach dem Hinzufügen eines Datensatzes und anschließendem Speichern :
Das ist die Fehlermeldung nach dem Ändern oder Löschen eines Datensatzes mit anschließendem Speichern :
Das ganze Skript ist allerdings eine Beispieldatei aus dem Buch, welches auf dieNordwind.mdb zugreift. Hier kann ich auch nach dem Hinzufügen speichern, ändern und löschen ohne das eine Fehlermeldung kommt.
Hier wäre mal das ganze Skript, ich hoffe es kann mir jemand helfen :
Leider kann ich nicht verstehen, warum nach Abänderung der "Nordwind.mdb" nach "Mitgliederliste.mdb" und deren Tabellennamen und Überschriften die Probleme auftreten.
Please Help !
ich versuche gerade eine Mitgliederverwaltung zu erstellen. Zur Seite steht mir das Buch Datenbankprogrammierung mit Visual Basic 2008. Um dabei was zu lernen, verzichte ich auf die Generatoren, die einem ja eine Menge Arbeit abnehmen können.
Ich habe also eine Datenbank "Mitgliederliste.mdb", die ich in eine DataTable einlese und verschiedene Textboxen und ein Datagridview anbinde. Die Anzeige und das Auswählen klappen auch wunderbar. Auch das Löschen, Ändern und Hinzufügen klappt. Um diese Änderungen aber zu sichern, muß der "speichern" Button gedrückt werden.
Das ist die Fehlermeldung nach dem Hinzufügen eines Datensatzes und anschließendem Speichern :
Das ist die Fehlermeldung nach dem Ändern oder Löschen eines Datensatzes mit anschließendem Speichern :
Das ganze Skript ist allerdings eine Beispieldatei aus dem Buch, welches auf dieNordwind.mdb zugreift. Hier kann ich auch nach dem Hinzufügen speichern, ändern und löschen ohne das eine Fehlermeldung kommt.
Hier wäre mal das ganze Skript, ich hoffe es kann mir jemand helfen :
VB.NET-Quellcode
- Imports System.Data.OleDbPublic Class Form1
- Private da As OleDbDataAdapter = Nothing
- Private dt As DataTable = Nothing
- ' Die BindingSource verbindet die Anzeige-Controls mit der DataTable. Private bs As New BindingSource()
- Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
- Dim connStr As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=Mitgliederliste.mdb"Dim conn As New OleDbConnection(connStr)
- Dim selStr As String = "SELECT * FROM Mitglieder"da = New OleDbDataAdapter(selStr, conn)
- da.MissingSchemaAction = MissingSchemaAction.AddWithKeyDim cb As New OleDbCommandBuilder(da)
- ' Ausführen der SQL-Abfrage (Anlegen und Füllen der Tabelle »Personal«): dt = New DataTable("Mitglieder")
- conn.Open()
- da.Fill(dt)
- conn.Close()
- ' Zuweisen der BindingSource:
- bs.DataSource = dtMe.DataGridView1.DataSource = bs
- ' Anbinden der Eingabemaske an die DataTable:Label1.DataBindings.Add("Text", bs, "ID")
- TextBox1.DataBindings.Add("Text", bs, "Name")TextBox2.DataBindings.Add("Text", bs, "Vorname")
- TextBox4.DataBindings.Add("Text", bs, "Bank")
- ' Datumsformatierung:Dim b1 As New Binding("Text", bs, "Geburts datum")
- AddHandler b1.Format, New ConvertEventHandler(AddressOf Me.DateToDateString)AddHandler b1.Parse, New ConvertEventHandler(AddressOf Me.DateStringToDate)
- TextBox3.DataBindings.Add(b1)
- ' Währungsformatierung:Dim b2 As New Binding("Text", bs, "Beitrag")
- AddHandler b2.Format, New ConvertEventHandler(AddressOf Me.DecToCurrString)AddHandler b2.Parse, New ConvertEventHandler(AddressOf Me.CurrStringToDec)
- TextBox5.DataBindings.Add(b2)MyBase.OnLoad(e)
- End Sub
- ' Geburtsdatum:
- Private Sub DateToDateString(ByVal sender As Object, ByVal e As ConvertEventArgs) 'DataTable => Anzeige
- Trye.Value = Convert.ToDateTime(e.Value).ToString("dd.MM.yyyy")
- Catch
- End Try
- End Sub
- Private Sub DateStringToDate(ByVal sender As Object, ByVal e As ConvertEventArgs) ' Anzeige => DataTable
- e.Value = Convert.ToDateTime(e.Value)
- End Sub
- ' Formatierung des Gehalts als Währung:
- Private Sub DecToCurrString(ByVal sender As Object, ByVal e As ConvertEventArgs) ' DataTable => Anzeige
- Trye.Value = Convert.ToDecimal(e.Value).ToString("c")
- Catch
- End Try
- End Sub
- Private Sub CurrStringToDec(ByVal sender As Object, ByVal e As ConvertEventArgs) ' Anzeige => Datenquelle
- e.Value = Convert.ToDecimal(e.Value)
- End Sub
- ' Bewegungsmethoden:Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- bs.MoveFirst()
- End SubPrivate Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
- bs.MovePrevious()
- End SubPrivate Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
- bs.MoveNext()
- End SubPrivate Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
- bs.MoveLast()
- End Sub
- ' NeuPrivate Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
- bs.AddNew()
- End Sub
- ' LöschenPrivate Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
- bs.RemoveCurrent()
- End Sub
- ' SpeichernPrivate Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
- bs.EndEdit()
- da.Update(dt)
- End Sub
- ' AbbrechenPrivate Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click
- bs.CancelEdit()End Sub
- End Class
Leider kann ich nicht verstehen, warum nach Abänderung der "Nordwind.mdb" nach "Mitgliederliste.mdb" und deren Tabellennamen und Überschriften die Probleme auftreten.
Please Help !