Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin

Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB.NET] Fragen - Antworten
Autor
Nachricht
fuige
Newbie
Newbie

Anmeldedatum: 30.12.2009
Beiträge: 2

Datensatz in der DB speichern
Verfasst am: 30.12.2009, 10:55

Hallo alle zusammen!

Wie in diesem Forum bin ich auch in der VB.net programierung ein Neuling und hoffe hier kann mir der ein oder andere Helfen.

Zuzeit erstelle ich ein kleines Projekt um Werkzeuge zu verwalten. Dabei wird in einem ersten Form über ein Datagridview eine Übersicht aller Werkzeuge angezeigt und bei der Selektion eines Eintrags dieser oberhalb des Gridview in der Detailansicht angezeigt.
Über einen Butten "Anlegen" öffnet sich ein neues Form um einen neuen Datensatz anzulegen. Und genau hier hänge ich nun.

Bein Klick auf den Button "Anlegen" erhalte ich folgende Fehlermeldung (Siehe Notiz am Quellcode Form 2)
ArgumentExeption wurde nicht behandelt
Dies führt dazu, dass sich zwei Bindungen der Auflistung an dieselbe Eigenschaft binden. Parametername: binding


Hier der bisherige Code.


--- Form 1 ---------------
Public Class Start

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: Diese Codezeile lädt Daten in die Tabelle "BetriebsmittelDataSet.tblTische". Sie können sie bei Bedarf verschieben oder entfernen.
Me.TblTischeTableAdapter.Fill(Me.BetriebsmittelDataSet.tblTische)
pnlTische.Visible = False
End Sub

Private Sub btnTische_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTische.Click
pnlTische.Visible = True
End Sub

Private Sub btnAnlegen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAnlegen.Click
Dim Tisch_Anlegen As New Tisch_Anlegen()
Tisch_Anlegen.ShowDialog() 'Neues Form zum anlegen eines Tisches öffnen
End Sub
End Class




--- Form 2 zum anlegen ------
Imports System.Data.SqlClient
Imports System.IO
Imports System.Windows.Forms

Public Class Tisch_Anlegen
Private conn As New SqlConnection("Server=AMD\SQLEXPRESS;Initial Catalog=Betriebsmittel;Integrated Security=True")

Dim da_Tische As New SqlDataAdapter("Select * from tblTische", conn)
Dim da_TischeVerwendung As New SqlDataAdapter("Select * from tblTischVerw", conn)
Dim dt_Tische As New DataTable("tblTische")
Dim dt_TischeVerwendung As New DataTable("tblTischVerw")
Private bs_Tische As New BindingSource()
Dim cmd As New SqlCommandBuilder(da_Tische) 'Wichtig für update, insert und delete


Private Sub Tisch_Anlegen_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: Diese Codezeile lädt Daten in die Tabelle "BetriebsmittelDataSet.tblTische". Sie können sie bei Bedarf verschieben oder entfernen.
Me.TblTischeTableAdapter.Fill(Me.BetriebsmittelDataSet.tblTische)

'Felder leeren
txtWerkzeugNr.Text = ""
txtAussenDurchm.Text = ""
txtBohrungDurchm.Text = ""
txtAussparungsDurchm.Text = ""
txtWinkel.Text = ""
txtTiefe.Text = ""

'Daten aus der DB in die DataTable übernehmen, DataTable können nun wie DB Tabelen verwendet werden
conn.Open()
da_TischeVerwendung.Fill(dt_TischeVerwendung)
da_Tische.Fill(dt_Tische)
conn.Close()

bs_Tische.DataSource = dt_Tische

'ComboBox für Verwendungsarten
cmbVerwendung.DataSource = dt_TischeVerwendung
cmbVerwendung.DisplayMember = "TischVerw"


txtWerkzeugNr.DataBindings.Add("Text", bs_Tische, "WerkzeugNr") <--------------------HIER ENTSTEHT DER FEHLER
txtAussenDurchm.DataBindings.Add("Text", bs_Tische, "AussenDurchm")
txtBohrungDurchm.DataBindings.Add("Text", bs_Tische, "BohrungDurchm")
'cmbVerwendung.DataBindings
End Sub



Private Sub btnSpeichern_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSpeichern.Click
bs_Tische.AddNew()
bs_Tische.EndEdit() : da_Tische.Update(dt_Tische)
End Sub

Private Sub btnAbbrechen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAbbrechen.Click
bs_Tische.CancelEdit()
End Sub
End Class
_________________
 
fuige
Newbie
Newbie

Anmeldedatum: 30.12.2009
Beiträge: 2


Verfasst am: 30.12.2009, 16:48

Hallihallo!
Nach langem Suchen und vielen Versuchen hier nun der Code des Form2 in funktionstüchtiger Ausführung.
Vielleicht hilfts dem ein oder anderen der vor dem selben Problem steht.

Gruß
Fuige


----------- Form2 -------------
Imports System.Data.SqlClient
Imports System.IO
Imports System.Windows.Forms

Public Class Tisch_Anlegen
Private conn As New SqlConnection("Server=AMD\SQLEXPRESS;Initial Catalog=Betriebsmittel;Integrated Security=True")

Dim da_Tische As New SqlDataAdapter("Select * from tblTische", conn)
Dim da_TischeVerwendung As New SqlDataAdapter("Select * from tblTischVerw", conn)
Dim dt_Tische As New DataTable("tblTische")
Dim dt_TischeVerwendung As New DataTable("tblTischVerw")
Private bs_Tische As New BindingSource()
Dim cmd As New SqlCommandBuilder(da_Tische) 'Wichtig für update, insert und delete


Private Sub Tisch_Anlegen_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: Diese Codezeile lädt Daten in die Tabelle "BetriebsmittelDataSet.tblTische". Sie können sie bei Bedarf verschieben oder entfernen.
Me.TblTischeTableAdapter.Fill(Me.BetriebsmittelDataSet.tblTische)

'Felder leeren
txtWerkzeugNr.Text = ""
txtAussenDurchm.Text = ""
txtBohrungDurchm.Text = ""
txtAussparungsDurchm.Text = ""
txtWinkel.Text = ""
txtTiefe.Text = ""
txtStueck.Text = ""

'Daten für ComboBoxen übernehmen
'Daten aus der DB in die DataTable übernehmen, DataTable können nun wie DB Tabelen verwendet werden
conn.Open()
da_TischeVerwendung.Fill(dt_TischeVerwendung)
conn.Close()

'ComboBoxen für Selektion
cmbVerwendung.DataSource = dt_TischeVerwendung
cmbVerwendung.DisplayMember = "TischVerw"
End Sub



Private Sub btnSpeichern_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSpeichern.Click
Dim ds_Tische As New DataSet("tblTische")
da_Tische.FillSchema(ds_Tische, SchemaType.Source, "tblTische")
da_Tische.Fill(ds_Tische, "tblTische")
' Neue DataTable Instanz erstellen
Dim tblTischNeu As DataTable
tblTischNeu = ds_Tische.Tables("tblTische")
Dim dr_Aktuell As DataRow
Try
' Neues DataRow Objekt der neuen DataTable Instanz erstellen
dr_Aktuell = tblTischNeu.NewRow()
dr_Aktuell("WerkzeugNr") = txtWerkzeugNr.Text
dr_Aktuell("AussenDurchm") = txtAussenDurchm.Text
dr_Aktuell("BohrungDurchm") = txtBohrungDurchm.Text
dr_Aktuell("Stck") = txtStueck.Text

'Die neuen Daten als neue Row im DataTable Objekt hinzufügen
tblTischNeu.Rows.Add(dr_Aktuell)
'Daten in die Datenbank abspeichern
TblTischeBindingSource.EndEdit()
da_Tische.Update(ds_Tische, "tblTische")

MsgBox("Daten wurden gespeichert!")

Close() 'Form schließen wenn speichern erfolgreich
Catch ex As Exception
MsgBox("Fehler oder unvollständige Angaben bei der Dateneingabe")
End Try
End Sub

Private Sub btnAbbrechen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAbbrechen.Click
bs_Tische.CancelEdit()
End Sub
End Class
 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB.NET] Fragen - Antworten

Tags: speichern, datensatz, daten, auflistung, eigenschaft

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Button/Text 867 18.06.2009, 15:21
Keine neuen Beiträge E-Mail bekomm nach Button klicken 662 02.10.2007, 16:45
Keine neuen Beiträge Bestimmten "Button" auf Website klicken 1535 14.09.2007, 20:27
Keine neuen Beiträge webbrowser/ webformular button klicken 1534 23.07.2007, 22:07
Keine neuen Beiträge Button drücken.. 740 01.07.2007, 12:19
 



[ Time: 0.2372s ][ Queries: 85 (0.0741s) ][ GZIP on - Debug on ]