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

ADO.NET Discussion :

Manipulation des données


Sujet :

ADO.NET

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Juillet 2013
    Messages : 1
    Points : 0
    Points
    0
    Par défaut Manipulation des données
    Bonjour,

    Je suis nouveau dans le forum, je fais des calculs sur des champs mails il m'affiche l'erreur suivante :

    l'opérateur '*' n'est pas défini pour le type 'dbnull' et le type double

    veuillez maidez a corriger l'erreur je vous prie
    jai mis la partie en gras qui renvoie lerreur
    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
    59
    60
    61
    62
    63
      Call connexion()
            Dim vnbpiece As Integer = 0
            Dim vnat As String = ""
            Dim vannee As Integer = 0
            Dim mntanP As Double = 0
            Dim mntanAP As Double = 0
            Dim typProprio As String = ""
            cmd.CommandText = "select * from contribuable c,avoirLocal al,local l where c.numcont=al.numcont and al.numloc=l.numloc and c.numcont='" & txtNumero.Text & "'"
            cmd2.CommandText = "select sum('" & vnbpiece & "' * pu *12) as [Montant a Paye] from nature where nature='" & vnat & "' and annee<='" & vannee & "'"
            cmd3.CommandText = "select sum( montant ) as [Montant Payé] from contribuable c,avoirLocal al,payements p where c.numcont=al.numcont and c.numcont=p.numcont and al.numloc='" & TextBox2.Text & "' and c.numcont='" & txtNumero.Text & "' and modePay='local'"
            Try
                cnx.Open()
                li = cmd.ExecuteReader
                If li.Read Then
                    txtnom.Text = li(1)
                    txtPre.Text = li(2)
                    TextBox1.Text = li(3)
                    txtPro.Text = li.GetString(4)
                    txtAdresseEnre.Text = li.GetString(5)
                    txtTel.Text = li.GetString(6)
                    cmbSexe.Text = li.GetString(7)
                    Cmbsit.Text = li.GetString(8)
                    txtEmail.Text = li.GetString(9)
                    Txtnationnalite.Text = li.GetString(10)
                    vnat = li.GetString(15)
                    vnbpiece = li.GetValue(19)
                    vannee = li.GetValue(13)
                End If
                li.Close()
                lire = cmd2.ExecuteReader
                If (lire.Read()) Then
                    If (typProprio = "PROPRIETAIRE") Then
                        mntanAP = lire.GetValue(0) * 0.1
                        Exit sub
                    Else
                        mntanAP = lire.GetValue(0) * 0.15
                    End If
                    Exit Sub
                End If
                lire.Close()
                lir = cmd3.ExecuteReader
                If (lir.Read()) Then
                    mntanP = lir.GetValue(0)
                Else
                    mntanP = 0
                End If
                If (mntanAP > mntanP) Then
                    Lblmontant.Text = mntanAP - mntanP
                    Lblrestpayer.Text = mntanAP - mntanP
                ElseIf (mntanAP < mntanP) Then
                    Lblmontant.Text = 0
                    Label15.Text = "En Avance de"
                    Lblrestpayer.Text = mntanP - mntanAP
                Else
                    Lblmontant.Text = 0
                    Lblrestpayer.Text = mntanP - mntanAP
                    Exit Sub
                End If
                lir.Close()
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
        End Sub

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Sidikiuchiha Voir le message
    l'opérateur '*' n'est pas défini pour le type 'dbnull' et le type double
    J'ai l'impression que tu essaies de faire la multiplication avec une valeur null. Or au niveau SQL l'opérateur '*' qui est la multiplication ne le permet pas.

    2 solutions :
    • soit tu effectues le calcul uniquement pour les valeurs différentes de null.
    • soit tu utilises la fonction ISNULL(macolonne, 0) qui renverra 0 si la valeur de macolonne est null. Donc forcément le résultat de la multiplication sera 0.

Discussions similaires

  1. Manipulation des données d'un sous-formulaire
    Par tafnole dans le forum IHM
    Réponses: 2
    Dernier message: 23/02/2008, 19h23
  2. Manipulation des donnes (perl+oracle)
    Par AmineDev9 dans le forum SGBD
    Réponses: 17
    Dernier message: 14/01/2008, 19h17
  3. Réponses: 4
    Dernier message: 09/06/2007, 23h49
  4. [xml]manipuler des données xml sous Oracle9i
    Par crazy dans le forum SQL
    Réponses: 7
    Dernier message: 28/02/2004, 11h40

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