Hi!
Ich stehe vor dem Problem, das ich mit Insert keine Daten in meine LocalDB speichern kann. Das Insert-Command wird zwar ohne Fehler ausgeführt, die Ansicht im Datagridview wird auch richtig aktualisiert, aber die Daten finden sich ausschliesslich im Datagridview aber nicht in der Datenbank.
Ursprünglich wollte ich das Insert über den Commandbuilder lösen, aber das hat auch nicht funktioniert, deswegen habe ich jetzt das Insert-Command versucht.
Hier der Code:
Ich stehe vor dem Problem, das ich mit Insert keine Daten in meine LocalDB speichern kann. Das Insert-Command wird zwar ohne Fehler ausgeführt, die Ansicht im Datagridview wird auch richtig aktualisiert, aber die Daten finden sich ausschliesslich im Datagridview aber nicht in der Datenbank.
Ursprünglich wollte ich das Insert über den Commandbuilder lösen, aber das hat auch nicht funktioniert, deswegen habe ich jetzt das Insert-Command versucht.
Hier der Code:
VB.NET-Quellcode
- Option Strict On
- Imports System.Data.SqlClient
- Public Class FrmStart
- Private myConn As SqlConnection
- Private myCmd As SqlCommand
- Private Shared DataAdapterKassa As New SqlDataAdapter
- Private Shared DataTableKassa As New DataTable
- Private KassaBindingSource As New BindingSource
- Private KassaCommandBuilder As SqlCommandBuilder
- Sub New()
- InitializeComponent()
- GetKassaData()
- End Sub
- Private Sub GetKassaData()
- Dim strSQL As String = "SELECT ID, Buchungsdatum, Bezeichnung, Einnahme, Ausgabe, Differenz FROM tblBuchungsData ORDER BY Buchungsdatum DESC"
- DataTableKassa.Clear()
- Try
- myConn = GetConnection()
- DataAdapterKassa = New SqlDataAdapter(strSQL, myConn)
- KassaCommandBuilder = New SqlCommandBuilder(DataAdapterKassa)
- DataAdapterKassa.Fill(DataTableKassa)
- KassaBindingSource.DataSource = DataTableKassa
- DgvKassa.DataSource = KassaBindingSource
- DgvKassa.Refresh()
- Catch ex As Exception
- MessageBox.Show(ex.Message)
- End Try
- End Sub
- Private Sub BtnSave_Click(sender As Object, e As EventArgs) Handles BtnSave.Click
- SaveData()
- GetKassaData()
- End Sub
- Private Sub SaveData()
- Dim strSQL As String = ""
- Dim xEin As Double = 0
- Dim xAus As Double = 0
- Dim xDifferenz As Double = 0
- Dim summeAus As Double = 0
- Dim summeEin As Double = 0
- If ChkEin.Checked = True And ChkAus.Checked = False Then
- xAus = 0
- xEin = CDbl(String.Format("{0:C2}", Decimal.Parse(tBetrag.Text)))
- End If
- If ChkAus.Checked = True And ChkEin.Checked = False Then
- xEin = 0
- xAus = CDbl(String.Format("{0:C2}", Decimal.Parse(tBetrag.Text)))
- End If
- For i As Integer = 0 To DgvKassa.Rows.Count - 1
- If DgvKassa.Rows(i).Cells(3).Value IsNot DBNull.Value Then
- summeEin += CInt(DgvKassa.Rows(i).Cells(3).Value)
- End If
- Next
- For i As Integer = 0 To DgvKassa.Rows.Count - 1
- If DgvKassa.Rows(i).Cells(4).Value IsNot DBNull.Value Then
- summeAus += CInt(DgvKassa.Rows(i).Cells(4).Value)
- End If
- Next
- xDifferenz = (xEin + summeEin) - (summeAus + xAus)
- strSQL = "INSERT INTO tblBuchungsData (Buchungsdatum, Bezeichnung, Einnahme, Ausgabe, Differenz) VALUES (@BuDat,@Bezeichnung,@Ein,@Aus,@Diff)"
- Try
- Using myConn As SqlConnection = GetConnection()
- myConn.Open()
- Using myCmd As New SqlCommand(strSQL, myConn)
- myCmd.Parameters.AddWithValue("@BuDat", dtBuDat.Value)
- myCmd.Parameters.AddWithValue("@Bezeichnung", tBezeichnung.Text)
- myCmd.Parameters.AddWithValue("@Ein", xEin)
- myCmd.Parameters.AddWithValue("@Aus", xAus)
- myCmd.Parameters.AddWithValue("@Diff", xDifferenz)
- myCmd.ExecuteNonQuery()
- End Using
- End Using
- Catch ex As Exception
- MessageBox.Show(ex.Message)
- End Try
- End Sub
- End Class