Hallo zusammen,
ich habe da einen Fehler in meinen kleine Programm entdeckt, für den ich im Moment keine Lösung finde !
Ich öffne ein neues Form mache meine Eingaben und Speichere das alles in einer Access DB danach wird das Form wieder geschlossen und die Daten stehen auch in der Datenbank.
Wenn ich aber sofort danach noch einen Eintrag machen will, hat der zweite Eintrag die Werte des ersten Eintrags usw.
Das kann ich fortführen bis zur Unendlichkeit die neu eingegeben Daten werden nicht in die DB geschrieben immer nur die des ersten Eintrags.
Logisch wenn ich das Programm schließe, klappt es wieder mit dem ersten Eintrag.
Ich habe mal unten den Code gepostet, evtl. hat jemand einen Tipp was das Falsch läuft.
Danke schon einmal für eure Antworten.
Gruß Mario
ich habe da einen Fehler in meinen kleine Programm entdeckt, für den ich im Moment keine Lösung finde !
Ich öffne ein neues Form mache meine Eingaben und Speichere das alles in einer Access DB danach wird das Form wieder geschlossen und die Daten stehen auch in der Datenbank.
Wenn ich aber sofort danach noch einen Eintrag machen will, hat der zweite Eintrag die Werte des ersten Eintrags usw.
Das kann ich fortführen bis zur Unendlichkeit die neu eingegeben Daten werden nicht in die DB geschrieben immer nur die des ersten Eintrags.
Logisch wenn ich das Programm schließe, klappt es wieder mit dem ersten Eintrag.
Ich habe mal unten den Code gepostet, evtl. hat jemand einen Tipp was das Falsch läuft.
Danke schon einmal für eure Antworten.
Gruß Mario
VB.NET-Quellcode
- ...
- ...
- Public Sub DBOpen()
- 'Datenbank bekant machen und DataGrid beim Form1_Load mit Daten Füllen
- HauptForm.con.ConnectionString = "Provider=Microsoft.JET.OLEDB.4.0;" & "Data Source=" & My.Application.Info.DirectoryPath & "\Datenbank\Fangbuch.mdb"
- HauptForm.cmd.Connection = HauptForm.con
- End Sub
- Public Sub InsertDB()
- ' Bilder wenn ausgewählt Kopieren und Pfad in die Datenbank schreiben.
- Dim Bildpfad As String = ""
- If OpenFileDialog1.FileName <> "" Then
- Dim fileinfo As New IO.FileInfo(OpenFileDialog1.FileName)
- Bildpfad = My.Application.Info.DirectoryPath & "\Bilder\" & DateAndTime.Now.ToString("ddMMyyyyHHmmsstt-") & fileinfo.Name
- If My.Computer.FileSystem.DirectoryExists(My.Application.Info.DirectoryPath & "\Bilder") = True Then
- My.Computer.FileSystem.CopyFile(fileinfo.FullName, Bildpfad)
- End If
- End If
- 'Daten vorbereiten für den Eintrag in die Datenbank.
- Dim datum, Zeit As Date
- Dim Angler, laenge, gewicht, distanz, tiefe, lufttemp, luftdruck, wassertemp As Integer
- Dim methode, koedername, Fischart, koederart, gewaesser, ort, wasserstand, wassertruebung, wetter, windrichtung, windstaerke, bild As String
- Dim zurueck, nichtsgef As Boolean
- 'Interger Variabeln
- datum = DateTimePickerDatum.Value.ToShortDateString
- Zeit = DateTimePickerZeit.Value.ToShortTimeString
- laenge = CUInt(TextBoxFischlaenge.Text)
- gewicht = CUInt(TextBoxGewicht.Text)
- distanz = CUInt(TextBoxDistanz.Text)
- tiefe = CUInt(TextBoxTiefe.Text)
- lufttemp = CUInt(TextBoxLufttemp.Text)
- luftdruck = CUInt(TextBoxLuftdruck.Text)
- wassertemp = CUInt(TextBoxWasserTemp.Text)
- 'String Variabeln
- Fischart = ComboBoxFischart.Text
- methode = ComboBoxMethode.Text
- koedername = TextBoxName.Text
- koederart = ComboBoxKoederArt.Text
- gewaesser = TextBoxGewaesser.Text
- ort = TextBoxOrt.Text
- wasserstand = ComboBoxWasserstand.Text
- wassertruebung = ComboBoxwassertruebung.Text
- wetter = ComboBoxWetter.Text
- windrichtung = ComboBoxWindrichtung.Text
- windstaerke = ComboBoxWindstaerke.Text
- bild = Bildpfad
- 'Boolean Variabel
- zurueck = CheckBoxCatchandRelase.Checked
- nichtsgef = CheckBoxNichtsGefangen.Checked
- 'Nicht ausgewählte Felder Löschen um ein "" in die DB zu schreiben.
- If RichTextBox1.Text = "Kommentarfeld" Then RichTextBox1.Clear()
- If methode = "- Bitte Auswählen -" Then methode = ""
- If koedername = "- Bitte Auswählen -" Then koedername = ""
- If koederart = "- Bitte Auswählen -" Then koederart = ""
- If wasserstand = "- Bitte Auswählen -" Then wasserstand = ""
- If wassertruebung = "- Bitte Auswählen -" Then wassertruebung = ""
- If wetter = "- Bitte Auswählen -" Then wetter = ""
- If windrichtung = "- Bitte Auswählen -" Then windrichtung = ""
- If windstaerke = "- Bitte Auswählen -" Then windstaerke = ""
- 'Den ausgewählten Angler eine ID zuweisen aus der Tabelle Fänger.
- Try
- HauptForm.con.Open()
- HauptForm.cmd.CommandText = "SELECT FID FROM Faenger WHERE FName LIKE '%" & ComboBoxUser.SelectedItem.ToString & "'"
- HauptForm.Reader = HauptForm.cmd.ExecuteReader()
- Do While HauptForm.Reader.Read
- Angler = HauptForm.Reader("FID")
- Loop
- HauptForm.Reader.Close()
- Catch ex As Exception
- MsgBox(ex.Message)
- End Try
- HauptForm.con.Close()
- 'Daten in die Datenbank schreiben.
- Try
- HauptForm.con.Open()
- HauptForm.cmd.CommandText = "INSERT INTO Fangdaten (Datum, Zeit, Faenger ,Fischart, Laenge, Gewicht, Fangmethode, Distanz, Tiefe, Koedername, Koederart, Gewaesser, Ort, Wasserstand, Wassertruebung, Wetter, LuftTemp, Luftdruck, WasserTemp, Windrichtung, Windstaerke, Kommentar, Bild, Catch, NichtsGefangen) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
- Dim pDatum As New OleDbParameter With {.Value = datum}
- Dim pZeit As New OleDbParameter With {.Value = Zeit.ToLongTimeString}
- Dim pFaenger As New OleDbParameter With {.Value = Angler}
- Dim pFischart As New OleDbParameter With {.Value = Fischart}
- Dim pLaenge As New OleDbParameter With {.Value = laenge}
- Dim pGewicht As New OleDbParameter With {.Value = gewicht}
- Dim pFangmethode As New OleDbParameter With {.Value = methode}
- Dim pDistanz As New OleDbParameter With {.Value = distanz}
- Dim pTiefe As New OleDbParameter With {.Value = tiefe}
- Dim pKoedername As New OleDbParameter With {.Value = koedername}
- Dim pKoederart As New OleDbParameter With {.Value = koederart}
- Dim pGewaesser As New OleDbParameter With {.Value = gewaesser}
- Dim pOrt As New OleDbParameter With {.Value = ort}
- Dim pWasserstand As New OleDbParameter With {.Value = wasserstand}
- Dim pWassertruebung As New OleDbParameter With {.Value = wassertruebung}
- Dim pWetter As New OleDbParameter With {.Value = wetter}
- Dim pLuftTemp As New OleDbParameter With {.Value = lufttemp}
- Dim pLuftdruck As New OleDbParameter With {.Value = luftdruck}
- Dim pWasserTemp As New OleDbParameter With {.Value = wassertemp}
- Dim pWindrichtung As New OleDbParameter With {.Value = windrichtung}
- Dim pWindstaerke As New OleDbParameter With {.Value = windstaerke}
- Dim pKommentar As New OleDbParameter With {.Value = RichTextBox1.Text}
- Dim pBild As New OleDbParameter With {.Value = bild}
- Dim pCatch As New OleDbParameter With {.Value = zurueck}
- Dim pNichtgef As New OleDbParameter With {.Value = nichtsgef}
- HauptForm.cmd.Parameters.Add(pDatum)
- HauptForm.cmd.Parameters.Add(pZeit)
- HauptForm.cmd.Parameters.Add(pFaenger)
- HauptForm.cmd.Parameters.Add(pFischart)
- HauptForm.cmd.Parameters.Add(pLaenge)
- HauptForm.cmd.Parameters.Add(pGewicht)
- HauptForm.cmd.Parameters.Add(pFangmethode)
- HauptForm.cmd.Parameters.Add(pDistanz)
- HauptForm.cmd.Parameters.Add(pTiefe)
- HauptForm.cmd.Parameters.Add(pKoedername)
- HauptForm.cmd.Parameters.Add(pKoederart)
- HauptForm.cmd.Parameters.Add(pGewaesser)
- HauptForm.cmd.Parameters.Add(pOrt)
- HauptForm.cmd.Parameters.Add(pWasserstand)
- HauptForm.cmd.Parameters.Add(pWassertruebung)
- HauptForm.cmd.Parameters.Add(pWetter)
- HauptForm.cmd.Parameters.Add(pLuftTemp)
- HauptForm.cmd.Parameters.Add(pLuftdruck)
- HauptForm.cmd.Parameters.Add(pWasserTemp)
- HauptForm.cmd.Parameters.Add(pWindrichtung)
- HauptForm.cmd.Parameters.Add(pWindstaerke)
- HauptForm.cmd.Parameters.Add(pKommentar)
- HauptForm.cmd.Parameters.Add(pBild)
- HauptForm.cmd.Parameters.Add(pCatch)
- HauptForm.cmd.Parameters.Add(pNichtgef)
- HauptForm.cmd.ExecuteNonQuery()
- Catch ex As Exception
- MsgBox(ex.Message)
- End Try
- HauptForm.con.Close()
- HauptForm.DataGridLoad()
- Close()
- End Sub
- Public Sub UserLoad()
- 'Benutzer aus der Datenbank in die CoboBoxUser Laden
- Try
- HauptForm.con.Open()
- HauptForm.cmd.CommandText = "SELECT * FROM Faenger"
- HauptForm.Reader = HauptForm.cmd.ExecuteReader()
- ComboBoxUser.Items.Clear()
- ComboBoxUser.Items.Add("- Bitte Auswählen -")
- Do While HauptForm.Reader.Read
- ComboBoxUser.Items.Add(HauptForm.Reader("FName"))
- Loop
- HauptForm.Reader.Close()
- Catch ex As Exception
- MsgBox(ex.Message)
- End Try
- HauptForm.con.Close()
- 'Prüfen ob es einen User in der Datenbank gibt.
- If ComboBoxUser.Items.Count <> 0 Then
- ComboBoxUser.Text = ComboBoxUser.Items.Item(0)
- Else
- MsgBox("Es gibt keine User in der Datenbank.", MsgBoxStyle.Information)
- Close()
- End If
- ' CheckBoxen auf ersten Eintrag setzen !
- CheckBoxNichtsGefangen.Checked = False
- CheckBoxCatchandRelase.Checked = False
- ComboBoxFischart.Text = ComboBoxFischart.Items.Item(0)
- ComboBoxKoederArt.Text = ComboBoxKoederArt.Items.Item(0)
- ComboBoxWasserstand.Text = ComboBoxWasserstand.Items.Item(0)
- ComboBoxwassertruebung.Text = ComboBoxwassertruebung.Items.Item(0)
- ComboBoxWetter.Text = ComboBoxWetter.Items.Item(0)
- ComboBoxWindrichtung.Text = ComboBoxWindrichtung.Items.Item(0)
- ComboBoxWindstaerke.Text = ComboBoxWindstaerke.Items.Item(0)
- ComboBoxMethode.Text = ComboBoxMethode.Items.Item(0)
- TextBoxFischlaenge.Text = 0
- TextBoxGewicht.Text = 0
- TextBoxDistanz.Text = 0
- TextBoxTiefe.Text = 0
- TextBoxName.Clear()
- TextBoxGewaesser.Clear()
- TextBoxOrt.Clear()
- TextBoxLufttemp.Text = 0
- TextBoxWasserTemp.Text = 0
- TextBoxLuftdruck.Text = 0
- RichTextBox1.Text = "Kommentarfeld"
- PictureBox1.Image = New Bitmap(Fangbuch.My.Resources.Resources.NoImage)
- End Sub
- ....
- ....