Likes Likes:  0
Resultaten 1 tot 2 van de 2
Geen
  1. #1
    OleDbType.Numeric (valuta) asp.net
    geregistreerd gebruiker
    57 Berichten
    Ingeschreven
    09/02/07

    Locatie
    kortrijk

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: nee
    KvK nummer: nvt
    Ondernemingsnummer: nvt

    Thread Starter

    OleDbType.Numeric (valuta) asp.net

    Beste,

    Ik heb al redelijk wat insert formulieren gemaakt in asp.net (visual basics) om zo gegevens in te vullen in mijn ACCESS database.

    Tot nu toe heb ik vooral gewerkt met gewone Text (Varchar) gegevens.

    Nu had ik graag een Valuta tekst invullen maar ik krijg steeds de foutcode:

    Failed to convert parameter value from a String to a Decimal.


    Hieronder geef ik je het stukje code die ik denk die moet aangepast worden:

    Code:
    objCmd.Parameters.Add("@bedrag", OleDbType.Numeric)
            objCmd.Parameters("@bedrag").Value = bedrag.Text
    Hieronder een werkende text varchar type:

    Code:
    objCmd.Parameters.Add("@beschrijving", OleDbType.VarChar)
            objCmd.Parameters("@beschrijving").Value = beschrijving.Text
    Zal ook mijn complete code even doorgeven (deze is wel redelijk lang):

    Code:
    Imports System.Data
    Imports System.Data.OleDb
    
    Partial Class uitvoer
        Inherits System.Web.UI.Page
    
        Dim strCn, strSql As String
        Dim intId, intFKid As Integer
    
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            strCn = ConfigurationManager.ConnectionStrings("vervaet").ConnectionString
    
    
    
    
            ' ##
            strCn = ConfigurationManager.ConnectionStrings("vervaet").ConnectionString
            If IsToegelaten(User.Identity.Name) = False Then
                ' De gebruuiker mag deze pagina niet zien
                'lblBoodschap.Text = "fout"
    
                ' of
                Response.Redirect("Default.aspx")
                ' Else
                '    ' De gebruiker mag deze pagina wel zien
                ' lblBoodschap.Text = "Goed"
            End If
            ' ###
    
    
    
    
    
            ' Indien een bestaand record opgevraagd wordt zullen de gegevens uit de DB
            ' gehaald en getoont worden.
    
            If Not Page.IsPostBack Then
                If Request.QueryString("id") <> "" Then
                    ' Er werd een id doorgegeven
                    intId = CType(Request.QueryString("id"), Integer)
                    id.Text = intId.ToString
    
                    If Not Page.IsPostBack Then
                        uitvoerenById(intId)
                    End If
                End If
            End If
    
    
            intFKid = CType(Request.QueryString("FKid"), Integer)
    
    
            FKid.Text = intFKid
    
    
    
    
    
    
    
    
        End Sub
    
    
    
    
        ' ###
        Private Function IsToegelaten(ByVal Username As String) As Boolean
            Dim objCn As New System.Data.OleDb.OleDbConnection(strCn)
            objCn.Open()
    
            strSql = "SELECT * FROM users Where Username = @Username AND admin = True;"
            Dim objCmd As New Data.OleDb.OleDbCommand(strSql, objCn)
    
            Dim objDa As New Data.OleDb.OleDbDataAdapter(objCmd)
            Dim objDs As New Data.DataSet
            objCmd.Parameters.Add("@Username", Data.OleDb.OleDbType.VarChar, 15)
            objCmd.Parameters("@Username").Value = Username
    
            objDa.Fill(objDs, "users")
    
            If objDs.Tables("users").Rows.Count >= 1 Then
                ' rechten toegestaan
                Return True
            Else
                ' rechten niet toegestaan
                Return False
            End If
        End Function
        ' ###
    
    
    
    
        Protected Sub bewaar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles bewaar.Click
            Dim objCn As New System.Data.OleDb.OleDbConnection(strCn)
            objCn.Open()
    
            If id.Text <> "" Then
                ' Bestaand record => update
                strSql = "UPDATE uitvoeren SET stand = @stand, " _
                       & "FKid = @FKid, " _
                       & "beschrijving = @beschrijving, " _
                       & "datum = @datum, " _
                       & "bedrag = @bedrag, " _
                       & "uitvoerdatum = @uitvoerdatum, " _
                       & "commissie = @commissie, " _
                       & "verkoopdatum = @verkoopdatum, " _
                       & "verkoper = @verkoper, " _
                       & "uitvoer = @uitvoer " _
                       & "WHERE id = @id; "
            Else
                ' Nieuw record => Insert
    
                strSql = "INSERT INTO uitvoeren(stand, FKid, beschrijving, datum, bedrag, uitvoerdatum, commissie, verkoopdatum, verkoper, uitvoer) " _
                       & "VALUES(@stand,@FKid,@beschrijving,@datum,@bedrag,@uitvoerdatum,@commissie,@verkoopdatum,@verkoper,@uitvoer);"
            End If
    
            Dim objCmd As New System.Data.OleDb.OleDbCommand(strSql, objCn)
            objCmd.Parameters.Clear()
    
            objCmd.Parameters.Add("@stand", OleDbType.VarChar)
            objCmd.Parameters("@stand").Value = stand.Text
    
    
            objCmd.Parameters.Add("@FKid", OleDbType.Integer)
            objCmd.Parameters("@FKid").Value = CType(FKid.Text, Integer)
    
            objCmd.Parameters.Add("@beschrijving", OleDbType.VarChar)
            objCmd.Parameters("@beschrijving").Value = beschrijving.Text
    
    
    
            objCmd.Parameters.Add("@datum", OleDbType.Date)
            If (Me.DatePickerDatum.IsNull) Then
                objCmd.Parameters("@datum").Value = System.DBNull.Value
    
            Else
                objCmd.Parameters("@datum").Value = Me.DatePickerDatum.SelectedDate
            End If
    
    
            objCmd.Parameters.Add("@bedrag", OleDbType.Numeric)
            objCmd.Parameters("@bedrag").Value = bedrag.Text
    
            objCmd.Parameters.Add("@uitvoerdatum", OleDbType.Date)
            If (Me.DatePickerUitvoerdatum.IsNull) Then
                objCmd.Parameters("@uitvoerdatum").Value = System.DBNull.Value
    
            Else
                objCmd.Parameters("@uitvoerdatum").Value = Me.DatePickerUitvoerdatum.SelectedDate
            End If
    
    
            objCmd.Parameters.Add("@commissie", OleDbType.Numeric)
            objCmd.Parameters("@commissie").Value = commissie.Text
    
    
    
            objCmd.Parameters.Add("@verkoopdatum", OleDbType.Date)
            If (Me.DatePickerVerkoopdatum.IsNull) Then
                objCmd.Parameters("@verkoopdatum").Value = System.DBNull.Value
    
            Else
                objCmd.Parameters("@verkoopdatum").Value = Me.DatePickerVerkoopdatum.SelectedDate
            End If
    
    
            objCmd.Parameters.Add("@verkoper", OleDbType.VarChar)
            objCmd.Parameters("@verkoper").Value = verkoper.Text
    
            objCmd.Parameters.Add("@uitvoer", OleDbType.VarChar)
            objCmd.Parameters("@uitvoer").Value = uitvoer.Text
    
    
    
            If ID.Text <> "" Then
                ' parameter voor id aanmaken
                objCmd.Parameters.Add("@id", OleDbType.Integer)
                objCmd.Parameters("@id").Value = CType(ID.Text, Integer)
            End If
    
            Try
                objCmd.ExecuteNonQuery()
            Catch ex As Exception
                boodschap.ForeColor = Drawing.Color.Red
                boodschap.Text = "Er trad een fout op bij het bewaren van de gegevens.<br />" & ex.Message
                Exit Sub
            Finally
                If objCn.State = Data.ConnectionState.Open Then
                    objCn.Close()
                End If
            End Try
    
            ' Indioen nodig de nieuwe id ophalen voor verdere verwerking
            If ID.Text = "" Then
                ID.Text = GetHighestId().ToString
                AccessDataSourceAfspraak.DataBind()
                GridView1.DataBind()
            End If
    
            If FKid.Text = "" Then
                FKid.Text = intFKid
                AccessDataSourceAfspraak.DataBind()
                GridView1.DataBind()
            End If
    
            boodschap.ForeColor = Drawing.Color.Green
            boodschap.Text = "De gegevens zijn bewaard."
    
        End Sub
    
    
        Private Function GetHighestId() As Integer
            Dim objCn As New System.Data.OleDb.OleDbConnection(strCn)
            objCn.Open()
    
            strSql = "SELECT MAX(AFid) AS Hoogste FROM uitvoeren;"
    
            Dim objCmd As New OleDbCommand(strSql, objCn)
            Dim objDa As New OleDbDataAdapter(objCmd)
            Dim objDs As New Data.DataSet
    
            objDa.Fill(objDs, "max")
    
            If objCn.State = Data.ConnectionState.Open Then
                objCn.Close()
            End If
    
            If objDs.Tables("max").Rows.Count <> 0 Then
                Return objDs.Tables("max").Rows(0).Item("Hoogste")
            Else
                Return -1
            End If
    
        End Function
    
        Private Sub uitvoerenById(ByVal intLocalId As Integer)
            Dim objCn As New System.Data.OleDb.OleDbConnection(strCn)
            objCn.Open()
    
            strSql = "SELECT * FROM uitvoeren WHERE id = @id;"
    
            Dim objCmd As New OleDbCommand(strSql, objCn)
            objCmd.Parameters.Add("@id", OleDbType.Integer)
            objCmd.Parameters("@id").Value = intLocalId
    
            Dim objDa As New OleDbDataAdapter(objCmd)
            Dim objDs As New Data.DataSet
    
            objDa.Fill(objDs, "uitvoeren")
    
            If objCn.State = Data.ConnectionState.Open Then
                objCn.Close()
            End If
    
            ' Plaats de gegevens van het prospectrecord in de tekstvakken
            If objDs.Tables("uitvoeren").Rows.Count > 0 Then
                id.Text = objDs.Tables("uitvoeren").Rows(0).Item("id").ToString
                stand.Text = objDs.Tables("uitvoeren").Rows(0).Item("stand").ToString
                FKid.Text = objDs.Tables("uitvoeren").Rows(0).Item("FKid").ToString
                beschrijving.Text = objDs.Tables("uitvoeren").Rows(0).Item("beschrijving").ToString
                DatePickerDatum.SelectedValue = objDs.Tables("uitvoeren").Rows(0).Item("datum")
                bedrag.Text = objDs.Tables("uitvoeren").Rows(0).Item("bedrag").Decimal
                DatePickerUitvoerdatum.SelectedValue = objDs.Tables("uitvoeren").Rows(0).Item("uitvoerdatum")
                commissie.Text = objDs.Tables("uitvoeren").Rows(0).Item("commissie").Decimal
                DatePickerVerkoopdatum.SelectedValue = objDs.Tables("uitvoeren").Rows(0).Item("verkoopdatum")
                verkoper.Text = objDs.Tables("uitvoeren").Rows(0).Item("verkoper").ToString
                uitvoer.Text = objDs.Tables("uitvoeren").Rows(0).Item("uitvoer").ToString
    
            Else
                boodschap.ForeColor = Drawing.Color.Red
                boodschap.Text = "De gevraagde gegevens werden niet gevonden."
            End If
    
        End Sub
    
        Protected Sub verwijder_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles verwijder.Click
            intId = CType(id.Text, Integer)
    
            Dim objCn As New System.Data.OleDb.OleDbConnection(strCn)
            objCn.Open()
    
            strSql = "DELETE FROM uitvoeren WHERE id = @id;"
    
            Dim objCmd As New System.Data.OleDb.OleDbCommand(strSql, objCn)
            objCmd.Parameters.Clear()
    
            ' parameter voor id aanmaken
            objCmd.Parameters.Add("@id", OleDbType.Integer)
            objCmd.Parameters("@id").Value = intId
    
            Try
                objCmd.ExecuteNonQuery()
            Catch ex As Exception
                boodschap.ForeColor = Drawing.Color.Red
                boodschap.Text = "Er trad een fout op bij het verwijderen van de gegevens.<br />" & ex.Message
                Exit Sub
            Finally
                If objCn.State = Data.ConnectionState.Open Then
                    objCn.Close()
                End If
            End Try
    
            Response.Redirect("Default.aspx")
        End Sub
    
        Protected Sub nieuw_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles nieuw.Click
            'Response.Redirect("afspraak.aspx")
            ' Formulier in status voor nieuwe ingave brengen
            id.Text = ""
            stand.text = ""
            FKid.Text = intFKid
            beschrijving.Text = ""
            DatePickerDatum.SelectedValue = ""
            bedrag.Text = ""
            DatePickerUitvoerdatum.SelectedValue = ""
            commissie.Text = ""
            DatePickerVerkoopdatum.SelectedValue = ""
            verkoper.Text = ""
            uitvoer.Text = ""
    
    
    
    
    
        End Sub
    End Class
    Gelieve me te helpen want op google vind ik niets.

    mvg
    Gandert



  2. #2
    OleDbType.Numeric (valuta) asp.net
    Life is short, play long!
    1.009 Berichten
    Ingeschreven
    05/05/04

    Post Thanks / Like
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    1 Berichten zijn liked


    Naam: Mike

    In het kort gaat het erom dat je probeert een String weg te schrijven, terwijl hij daar een ander DataType verwacht (decimal).

    Je code zal eerder er zo uit moeten zien:
    Code:
    objCmd.Parameters.Add("@bedrag", OleDbType.Numeric)
            objCmd.Parameters("@bedrag").Value = Convert.ToDecimal(bedrag.Text)
    Even zeker wetende dat er altijd een decimal value in zit (dus geen lege waardes of 'gewone' characters).

    Succes...

Webhostingtalk.nl

Contact

  • Rokin 113-115
  • 1012 KP, Amsterdam
  • Nederland
  • Contact
© Copyright 2001-2021 Webhostingtalk.nl.
Web Statistics