IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Echec de la conversion de la valeur de paramètre d'un String en un Int32


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 257
    Par défaut Echec de la conversion de la valeur de paramètre d'un String en un Int32
    Salut,
    En cliquant sur le bouton "Valider" je veux insérer les données dans la table "Abonnement" or en cliquant sur le bouton il m'affiche ce message d'erreur "Echec de la conversion de la valeur de paramètre d'un String en un Int32". Que dois je faire?
    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
    Imports System.Data.OleDb
    Imports System.Data
    Imports System.Data.OleDb.OleDbType
    Imports System.Data.SqlTypes
    'Imports System.Data.Sql
     
    Public Class Frmajoutab
        Public sql, sql1 As String
     
        Private Sub Frmajoutab_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            'TODO : cette ligne de code charge les données dans la table 'MarchesDataSet.Abonnement'. Vous pouvez la déplacer ou la supprimer selon vos besoins.
            'Me.AbonnementTableAdapter.Fill(Me.MarchesDataSet.Abonnement)
            'TODO : cette ligne de code charge les données dans la table 'MarchesDataSet.Fournisseur'. Vous pouvez la déplacer ou la supprimer selon vos besoins.
            Me.FournisseurTableAdapter.Fill(Me.MarchesDataSet.Fournisseur)
        End Sub
     
        Private Sub Btnvalider_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnvalider.Click
            Dim cn As New OleDb.OleDbConnection
            Dim command As OleDbCommand = New OleDbCommand("insert into Abonnement (Num_abonnement, Lib_abonnement, Date_debut_ab, Date_fin_ab, Montant_ab, Num_frs, Nom_frs) values (@numab, @libab, @Dates, @Datef, @montantab, @numfrs, @Cbxfrs) ")
     
            If Txtnumab.Text = "" Or Txtlibab.Text = "" Or Txtmontantab.Text = "" Or Txtnumfrs.Text = "" Then
                MsgBox("Vous devez saisir des valeurs non nulles.", MsgBoxStyle.Critical + MsgBoxStyle.OkOnly)
                Exit Sub
            End If
            'sql1 = "select count * from Abonnement where Num_abonnement ='" & Txtnumab.Text & "'"
            command.Parameters.Add(New OleDbParameter("@numab", SqlDbType.Text, 50))
            command.Parameters("@numab").Value = Txtnumab.Text
            command.Parameters.Add(New OleDbParameter("@libab", SqlDbType.Text, 255))
            command.Parameters("@libab").Value = Txtlibab.Text
            command.Parameters.Add(New OleDbParameter("@dates", SqlDbType.SmallDateTime))
            command.Parameters("@dates").Value = F_Formatdate(CType(Dates.Text, Date), "dd/mm/yyyy")
            command.Parameters.Add(New OleDbParameter("@datef", SqlDbType.SmallDateTime))
            command.Parameters("@datef").Value = F_Formatdate(CType(Datef.Text, Date), "dd/mm/yyyy")
            command.Parameters.Add(New OleDbParameter("@montantab", SqlDbType.Money, 15))
            command.Parameters("@montantab").Value = Txtmontantab.Text
            command.Parameters.Add(New OleDbParameter("@numfrs", SqlDbType.Int, 10))
            command.Parameters("@numfrs").Value = Txtnumfrs.Text
            command.Parameters.Add(New OleDbParameter("@cbxfrs", SqlDbType.Text, 50))
            command.Parameters("@cbxfrs").Value = Cbxfrs.Text
            Try
                cn.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source=C:\Marches.mdb"
                cn.Open()
                command.Connection = cn
                command.ExecuteNonQuery()
                MsgBox("Votre opération a été effectuée avec succès.", MsgBoxStyle.Information + MsgBoxStyle.OkOnly)
            Catch ex As Exception
                'MsgBox("Le numéro d'abonnement existe déjà")
                MessageBox.Show(ex.Message)
            Finally
                If Not (cn Is Nothing) Then
                    cn.Close()
                End If
            End Try
            Me.Close()
            Frmprincipale.Show()
        End Sub
    End Class

  2. #2
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 257
    Par défaut
    Dans ma base de données ces données sont de type :
    Num_abonnement : text
    Lib_abonnement : text
    Date_debut_ab : date
    Date_fin_ab : date
    Montant_ab : monétaire
    Num_frs : numérique
    Nom_frs : text

  3. #3
    Expert confirmé
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Par défaut
    Il faudrait OleDbType plutôt que SQLDBType et Decimal pour le type monétaire

    Ensuite ce devreit être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    command.Parameters("@numfrs").Value = Cint(Txtnumfrs.Text)

  4. #4
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 257
    Par défaut Merci
    Ca marche Nickel. Merci beaucoup pour votre aide. Elle m'a été précieuse.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 11
    Dernier message: 11/08/2014, 21h14
  2. Réponses: 1
    Dernier message: 13/02/2010, 13h44
  3. Conversion d'une valeur numérique
    Par aldama dans le forum Débuter
    Réponses: 3
    Dernier message: 19/02/2008, 20h37
  4. Réponses: 4
    Dernier message: 18/06/2007, 13h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo