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 :

[Double] Problème de type DOUBLE dans UPDATE SQL


Sujet :

VB.NET

  1. #1
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    467
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 467
    Points : 144
    Points
    144
    Par défaut [Double] Problème de type DOUBLE dans UPDATE SQL
    Bonjour,

    Je souhaite faire un UPDATE d'une ligne dans ma base de données.
    J'ai 3 champs à mettre à jour :
    2 entier et 1 double.

    Le problème vient du double.

    Voici le 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
     ' --- Mise en forme de la taille de la sauvegarde 2 chiffres aprés la virgule
    taille = Double.Parse(Reader_BE.GetValue(0))
    taille = taille / 1000000000
    taille = Math.Round(taille, 2)
     
    ' --- Récupération du TEMPS d'éxécution
    temps = Reader_BE.GetValue(2)
     
     
    ' --- Insertion des données dans la table TDB_SAVE
    ' --- Requête SQL ==== TRAVAUX BE DANS BASE TDB
    command_INSERT_TDB = New SqlClient.SqlCommand
    command_INSERT_TDB.Connection = connection_TDB
    command_INSERT_TDB.CommandText = "UPDATE  TDB_SAVE SET temps_save = " & temps & ", volume_save = " & taille & " ,num_status_save = " & status & "  WHERE num_tdb = " & numero & " AND date_save = " & datebe
     
    MessageBox.Show(command_INSERT_TDB.CommandText)
    ' --- Exécution de l'insertion dans la TABLE TDB SAVE
    command_INSERT_TDB.ExecuteNonQuery()
    L'erreur est sur le :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    command_INSERT_TDB.ExecuteNonQuery()
    Voici le message d'erreur qui s'affiche :




    J'ai fais un MESSAGEBOX de ma chaine de commande et voici comment elle s'affiche :




    J'ai l'impression que c'est la virgule du double qui fais penser à la requête que le 68 est un autre champs.

    Pouvez vous m'aider?

    Merci d'avance pour votre aide,

    .Matt

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 754
    Points
    39 754
    Par défaut
    Comme la langue de ton système est le français, le nombre est formaté en français, c'est-à-dire avec une virgule comme séparateur décimal. Or SQL Server attend un point...
    Pour formater un nombre en langue "neutre" (c'est-à-dire en anglais ), utilise ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Imports System.Globalization
    ...
    taille.ToString(NumberFormatInfo.InvariantInfo)
    D'une manière plus générale, pour ne pas avoir à te préoccuper du format, utilise des requêtes paramétrées (cf. ce tuto)

Discussions similaires

  1. Problème avec les apostrophes dans le sql en VBA
    Par cyrilboulan dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 14/03/2017, 10h11
  2. Réponses: 31
    Dernier message: 19/02/2015, 16h03
  3. Problème insertion type date dans la base MySQL
    Par elhou80 dans le forum JDBC
    Réponses: 3
    Dernier message: 12/11/2013, 11h57
  4. Problème de type RECORD dans PGSQL
    Par wangying dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 29/01/2013, 16h19
  5. Probléme variable type double
    Par Pierre005 dans le forum Débuter
    Réponses: 5
    Dernier message: 02/12/2009, 15h10

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