Hi,
habe die DBExtensions des Erfinder des Rades bei mir eingebunden und folgendes Problem beim saven des DataSets, wenn ich die Werte einer neuen Row aus unabhängigen Controls übers DataSet in die DB schreiben will:
Ich komm nicht drauf, was schief geht. Die Werte in der neuen Row werden m.E. korrekt übernommen. Habe das nachgeprüft, in dem ich über neuerDS.Item.Array iteriert bin und das alles in eine msgbox geschrieben habe. Hängt als Anlage dran. In der Save-Extension kommt auch das richtige DataSet an (jedenfalls hats den richtigen Namen) und CheckForChanges ist auf True.
Bitte help!
habe die DBExtensions des Erfinder des Rades bei mir eingebunden und folgendes Problem beim saven des DataSets, wenn ich die Werte einer neuen Row aus unabhängigen Controls übers DataSet in die DB schreiben will:
Der Fehler tritt in FormX.vb(Save-Extension) auf, der von folgendem Code aufgerufen wird:System.NullReferenceException wurde nicht behandelt.
Message=Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
Source=WinFormHelpers
StackTrace:
bei System.Windows.Forms.FormX.Save(DataSet dts, Form frm, Boolean checkForChanges) in D:\DBExtensions\AllTogether\Helpers\WinFormHelpers\FormX.vb:Zeile 70.
bei MeinFinanzKnecht.frmBuchungNeu.btnOK_Click(Object sender, EventArgs e) in E:\Finanzen\MeinFinanzKnecht\MeinFinanzKnecht\Forms\frmBuchungNeu.vb:Zeile 97.
bei System.Windows.Forms.Control.OnClick(EventArgs e)
bei System.Windows.Forms.Button.OnClick(EventArgs e)
bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
bei System.Windows.Forms.Control.WndProc(Message& m)
bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
bei System.Windows.Forms.Button.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
bei System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
bei System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
bei MeinFinanzKnecht.My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:Zeile 81.
bei System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
bei System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
bei Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
bei System.Threading.ThreadHelper.ThreadStart_Context(Object state)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
bei System.Threading.ThreadHelper.ThreadStart()
InnerException:
VB.NET-Quellcode
- Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click
- Dim neuerDS As DataRow
- neuerDS = Me.DsFinanzKnecht.Buchung.NewRow
- neuerDS.Item("Name") = txtName.Text.ToString
- If optEinnahme.Checked = True Then
- neuerDS.Item("Buchungsart_id") = "Einnahme"
- Else
- neuerDS.Item("Buchungsart_id") = "Ausgabe"
- End If
- neuerDS.Item("Beginn") = Convert.ToDateTime(cmbBeginn.SelectedValue)
- neuerDS.Item("Ende") = Convert.ToDateTime(cmbEnde.SelectedValue)
- neuerDS.Item("Kategorie_id") = lstKategorie.SelectedValue
- neuerDS.Item("Konto_id") = lstKonto.SelectedValue
- neuerDS.Item("Zahlungsart_id") = lstZahlungsart.Text
- neuerDS.Item("Fälligkeit_id") = lstFälligkeit.Text
- neuerDS.Item("Betrag") = txtBetrag.Value
- neuerDS.Item("Bemerkungen") = txtBemerkungen.Text
- Me.DsFinanzKnecht.Buchung.Rows.Add(neuerDS)
- DsFinanzKnecht.Save(Me)
- End Sub
Ich komm nicht drauf, was schief geht. Die Werte in der neuen Row werden m.E. korrekt übernommen. Habe das nachgeprüft, in dem ich über neuerDS.Item.Array iteriert bin und das alles in eine msgbox geschrieben habe. Hängt als Anlage dran. In der Save-Extension kommt auch das richtige DataSet an (jedenfalls hats den richtigen Namen) und CheckForChanges ist auf True.
Bitte help!
Ich code nur 'just for fun'! Damit kann ich jeden Mist entschuldigen, den mein Interpreter verdauen muss