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 :

Problème insertion du type double dans sql server


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Homme Profil pro
    Autodidacte
    Inscrit en
    Février 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Gabon

    Informations professionnelles :
    Activité : Autodidacte

    Informations forums :
    Inscription : Février 2017
    Messages : 14
    Points : 14
    Points
    14
    Par défaut Problème insertion du type double dans sql server
    Bonjour chers tous,
    je suis confronté a un problème.En effet, j'aimerai insérer des données provenant de ma table NOTER.Dans ma requête d'insertion il y a plusieurs champs déclarés de type DOUBLE et les champs qui doivent les recevoir dans SQL SERVER 2008 sont de type FLOAT. Lors de l'opération d'insertion, mon événement bouton click fonctionne quand les valeurs sont nulles mais lorsque je passe des nombre à virgules je reçois ce message d’erreur : " ERROR CONVERTING DATA TYPE VARCHAR TO FLOAT ".Ainsi je comprends que ma requête INSERT n'est pas bonne. Pouvez vous m'aidez svp? je vous laisse 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
                 Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles BT_Insertion.Click
     
     
            Dim cn As New SqlConnection("Data Source=RUFLI-PC;Initial Catalog=school;Integrated Security=True")
            cn.Open()
            Dim cmd As New SqlCommand("INSERT into NOTER (MATRICULE,CODE_MATIERE,CODE_SEMESTRE,NOTE_1,NOTE_2,NOTE_3,NOTE_4,MOYENNE) values('" & Lbl_matricule.Text & "','" & cmb_matiere.Text & "','" & Cmb_semestre.Text & "','" & Txb_note1.Text & "','" & txb_note2.Text & "','" & Txt_note3.Text & "','" & Txb_note4.Text & "','" & Txb_moyenne.Text & "')", cn)
            Try
                Dim i As Integer = cmd.ExecuteNonQuery()
                MessageBox.Show(" insertion réussie", "Insertion", MessageBoxButtons.OK, MessageBoxIcon.Information)
                If (i > 0) Then
                    cn.Close()
                Else
                    MessageBox.Show(" Donnée non enregistrée ", "erreur !", MessageBoxButtons.OK, MessageBoxIcon.Error)
                    cn.Close()
                End If
            Catch ex As Exception
                MessageBox.Show(ex.Message, " Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error)
            End Try
     
        End Sub
    Au fait, j'allais oublier. j'ai pratiquement le même problème pour l’insertion du DateTimePicker dans un autre FORM

  2. #2
    Membre éprouvé Avatar de Momoth
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2013
    Messages
    318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2013
    Messages : 318
    Points : 1 236
    Points
    1 236
    Par défaut
    Salut,

    Le problème vient surement du format de tes saisies. Comment écris tu tes décimaux (virgules ou points ?).

    Pour la date le format attendu est YYYY-MM-DD. Du coup, oui y'a de forte chance que ca coince avec une saisie classique en DD/MM/YYYY.
    La Triforce du développement : Fainéantise, Curiosité et Imagination.

  3. #3
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut Suppression du commentaire désagréable :(
    il ne faut pas concaténer des valeurs dans une requete, c'est une faille de sécurité (#injectionsql) et une source de bug
    il faut utiliser des requetes paramétrées

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    cmd.commandtext = "insert into table (id, col1, col2) values (@id, @date, @nb)"
    cmd.parameters.Add("@id", sqldbtype.int, id) ' pas sur de l'ordre des paramètres et de la syntax
    cmd.parameters.Add("@date", sqldbtype.datetime, unedate)
    cmd.parameters.Add("@nb", sqldbtype.double, nb)
    en concaténant une date ou un nombre vont être transformé en une représentation sous forme de string, et si la base n'a pas la même représentation attendu ca plante (ou ca inverse jour/mois par exemple)
    en utilisant des paramètres, des variables typées sont créées et sont transférées sur leur représentation binaire
    la représentation binaire d'une date est un format universel, alors que la représentation sous forme de string peut changer d'un pc à l'autre (donc une spécification du format string pourrait fonctionner sur ton pc mais pas sur un autre) (idem pour les nombres, le séparateur de décimal peut varier)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

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

Discussions similaires

  1. Problème insertion et modification données dans SQL Server CE
    Par Lucas Panny dans le forum Accès aux données
    Réponses: 15
    Dernier message: 09/08/2011, 09h47
  2. insertion date et heure dans SQL server
    Par robinash dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 16/01/2008, 17h40
  3. syntaxe d'insertion d'une variable dans SQL Server
    Par hariri dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 20/04/2007, 17h00
  4. Problème de manipulation d'enregistrement dans sql server
    Par labvivi dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 27/03/2007, 12h35
  5. Champ de type "Image" dans SQL Server
    Par Edouard Kaiser dans le forum ASP
    Réponses: 5
    Dernier message: 09/09/2005, 07h43

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