Strings umwandeln/Speichern

  • VB.NET

    Strings umwandeln/Speichern

    Hallo,

    habe eine Frage und hoffe hier ein wenig Hilfe zu bekommen, denn ich weiß nicht genau was ich falsch mache.

    Also ich hab ein kleines Programm gebastelt dass eine Datenbankverbindung nutzt.
    Nun lade ich mir die Daten in meine TextBoxen:

    VB.NET-Quellcode

    1. Dim t As DataTable = Me.FkalkDataSet.Tables("kat_pos")
    2. Dim r As DataRow = tv_menu_option.SelectedNode.Tag
    3. Me.txt_faufpreis.Text = r("aufpreis_nb").ToString()
    4. Me.txt_fbahnbreite.Text = r("bahnbreite").ToString()
    5. Me.txt_fbez.Text = r("bez").ToString()
    6. Me.txt_fhoehe.Text = r("hoehe").ToString()
    7. Me.txt_flaenge.Text = r("laenge").ToString()
    8. Me.txt_fname.Text = r("name").ToString()
    9. Me.txt_fpreis_lfdm.Text = r("preis_lfdm").ToString()
    10. Me.txt_fpreis_st.Text = r("preis_st").ToString()
    11. Me.txt_fteilung.Text = r("teilung").ToString()
    12. Me.txt_fwinkel.Text = r("winkiel").ToString()
    13. Me.txt_fzeit_lfdm.Text = r("zeit_lfdm").ToString()
    14. Me.txt_fzeit_st.Text = r("zeit_st").ToString()
    15. Me.txt_fid.Text = r("id").ToString()


    Alles mit ToString(), sonst bekomme ich einen Fehler dass der WErt nicht geschrieben werden kann.

    Nun hab ich die Werte geladen und möchte die auch nach dem ändern wieder speichern, und zwar versuche ich das so:

    VB.NET-Quellcode

    1. Dim conn As OleDbConnection = New OleDbConnection(My.Settings.fkalkConnString)
    2. Dim sqlCmd_f As String = "update tbl_katpos set " & _
    3. "[aufpreis_nb] = '" & CDbl(Me.txt_faufpreis.Text) & "', " & _
    4. "[bahnbreite] = '" & CDbl(Me.txt_fbahnbreite.Text) & "', " & _
    5. "[bez] = '" & Me.txt_fbez.Text.ToString() & "', " & _
    6. "[hoehe] = '" & CDbl(Me.txt_fhoehe.Text) & "', " & _
    7. "[laenge] = '" & CDbl(Me.txt_flaenge.Text) & "', " & _
    8. "[name] = '" & Me.txt_fname.Text.ToString() & "', " & _
    9. "[preis_lfdm] = '" & CDbl(Me.txt_fpreis_lfdm.Text) & "', " & _
    10. "[preis_st] = '" & CDbl(Me.txt_fpreis_st.Text) & "', " & _
    11. "[teilung] = '" & CDbl(Me.txt_fteilung.Text) & "', " & _
    12. "[winkiel] = '" & CDbl(Me.txt_fwinkel.Text) & "', " & _
    13. "[zeit_lfdm] = '" & CDbl(Me.txt_fzeit_lfdm.Text) & "', " & _
    14. "[zeit_st] = '" & CDbl(Me.txt_fzeit_st.Text) & "' " & _
    15. "Where [id] = '" & CDbl(Me.txt_fid.Text) & "'"
    16. Dim dbCmd_f As OleDbCommand = New OleDbCommand(sqlCmd_f, conn)
    17. conn.Open()
    18. Try
    19. 'Daten ändern
    20. Dim res As Integer = dbCmd_f.ExecuteNonQuery()
    21. Catch ex As Exception
    22. MsgBox(ex.Message)
    23. End Try
    24. reload()
    25. conn.Close()


    Da mit den Werten später noch Berechnungen durchgeführt werden sollen müssen die Zahlen auch als Zahlen gespeichert werden. Die Tabelle in der DB akzeptiert auch nur Zahlen, alle Zahlenfelder akzeptieren Double.
    Nun hatte ich gedacht ich kann die Werte aus den Textfelder in Double umwandeln. Aber bekomme immer den Fehler "Datentypen in Kriterien unverträglich".

    Jetzt weiß ich leider nicht wie ich das anstellen soll, dass es funktioniert? Hat jemand eine Idee wie ich das machen kann?
    Oder gibt es die Möglichkeit die Daten zurück ins DataSet zu schieben, den RowState auf Changed zu setzen und über Update an die DB schicken? Das könnte ich mir noch vorstellen, aber weiß nicht wie das mit den Textfeldern funktionieren soll, im DataGridView geht das ja noch.
    So sind die Daten ja nicht mehr ans DataSet gebunden, oder?

    Über Hilfe würde ich mich sehr freuen!

    Vielen Dank!

    MfG Daniel