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

Développement SQL Server Discussion :

update valeurs float


Sujet :

Développement SQL Server

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Octobre 2008
    Messages : 187
    Points : 62
    Points
    62
    Par défaut update valeurs float
    Bonjour,
    voici ma requête sql server2008

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    UPDATE EXAMEN set NOTE= CASE 
    WHEN( CODE_MATIERE = '1' and @note1 =99)  then '0'  
    when (CODE_MATIERE = '1' and @note1 <>99 ) then @note1  
            WHEN (CODE_MATIERE = '2' and @note2 ='99')  then '0'  
    when (CODE_MATIERE = '2' and @note2 <>99)  then @note2 END, PRESENCE=
    CASE WHEN( CODE_MATIERE = '1' and @note1 =99) then 'TRUE' 
    when( CODE_MATIERE = '2' and @note2 ='99')  then 'TRUE'  else 'FALSE'
     
    end
    WHERE NUM_INSCRIPTION = @num
    avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     note1 = float.Parse(((TextBox)row.FindControl("tmoy1")).Text);
                    note2 = float.Parse(((TextBox)row.FindControl("tmoy4")).Text);
                    num = ((Label)row.FindControl("lblUserID1")).Text;
    je ne sais si c'est juste ou non puisqu'il l ne fais pas une mise à jour mais :il multiplie les notes de la première ligne par 2 à chaque fois que je clique sur le bouton update et il laisse les valeurs d'autres lignes sans modification?
    est ce que le probllème viens de type float ?ya til un autre type à utiliser pour les notes des étudiants ?
    aidez moi svp.

  2. #2
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Votre demande est totalement incompréhensible :

    - vous balancez une requête DML sur une table dont on ne dispose pas du DDL

    - un bout de code en C# dont on ne sait pas ce qu'il fait et dont on ignore totalement l'articulation avec le DML au dessus (de surcroît sans les types des variables, ce qui fait que vous nous demandez en plus de jouer aux devinettes).

    Bref, vous espérez sérieusement une réponse ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Octobre 2008
    Messages : 187
    Points : 62
    Points
    62
    Par défaut
    Bonsoir;
    Voilà la bd et la table examen sont en pièce jointe.
    je travail sur la gestion des notes d'une faculté ,pour faciliter l'insertion des notes j'ai utilisé une gridview générée à l'aide de la requête suivante:
    pour pouvoir travailler sur deux matières à la fois (un module )et en horizontal.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT NUM_INSCRIPTION, CODE_TYPE_RELATION_MODULE, NOM_PRENOM_ETUDIANT_ARABE,CODE_MODULE, [1] AS '1', [2] AS '2'
     
     
        FROM         (SELECT  ETUDIANT.NOM_PRENOM_ETUDIANT_ARABE   , EXAMEN.CODE_MATIERE, EXAMEN.NUM_INSCRIPTION, EXAMEN.NOTE, 
                                                  CAPITALISE_MODULE.CODE_TYPE_RELATION_MODULE,CAPITALISE_MODULE.CODE_MODULE
                           FROM          EXAMEN INNER JOIN
                                                  ETUDIANT ON ETUDIANT.NUM_INSCRIPTION = EXAMEN.NUM_INSCRIPTION INNER JOIN
                                                  CAPITALISE_MODULE ON CAPITALISE_MODULE.NUM_INSCRIPTION = EXAMEN.NUM_INSCRIPTION
                           WHERE       CODE_TYPE_RELATION_MODULE =4 AND CODE_MODULE = 1) p PIVOT(SUM(NOTE)FOR CODE_MATIERE IN( [1], [2])) AS pvt ORDER BY NUM_INSCRIPTION



    le code qui me pose problème pour le moment c'est le code qui permet de mettre à jour la table examen en utilisant les valeurs que l'utilisateur à inséré dans une gridview en edit mode(J'ai utilisé update note au lieu d'insert par ce que j'ai pas pu utiliser le pivot quand la table examen est vide(le champs note est vide) donc une fois l'étudiant est inscris à un module j'insère son numéro et les id de matières de ce module dans la table examen,et quand j'ai la note je fais update,je n'attend pas avoir une note pour insérer le triple à la fois) .

    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
       private void Update()
        {
     
            string cmd = @"UPDATE EXAMEN set NOTE= CASE 
    WHEN CODE_MATIERE = '1' and @note1 =99  then '0'  
    when CODE_MATIERE = '1' and @note1 <>99  then @note1  
            WHEN CODE_MATIERE = '2' and @note2 ='99'  then '0'  
    when CODE_MATIERE = '2' and @note2 <>99  then @note2 END, PRESENCE=
    CASE WHEN CODE_MATIERE = '1' and @note1 =99 then 'TRUE' 
    when CODE_MATIERE = '2' and @note2 ='99'  then 'TRUE'  else 'FALSE'
     
    end
    WHERE NUM_INSCRIPTION = @num;";
     
            float @note1, @note2;
            string num;
            SqlCommand myCommand;
            SqlParameter param1, param2, param3;
     
            using (SqlConnection myConnection = new SqlConnection(ConnectionString))
            {
                myConnection.Open();
     
                foreach (GridViewRow row in GridView1.Rows)
                {
                    note1 = float.Parse(((TextBox)row.FindControl("note1")).Text);
                    note2 = float.Parse(((TextBox)row.FindControl("note2")).Text);
                    num = ((Label)row.FindControl("lblUserID")).Text;
     
                    myCommand = new SqlCommand(cmd, myConnection);
     
                    param1 = new SqlParameter("@num", SqlDbType.VarChar, 4);
                    param1.Value = num;
                    myCommand.Parameters.Add(param1);
     
                    param2 = new SqlParameter("@note1", SqlDbType.Float, 2);
                    param2.Value = note1;
                    myCommand.Parameters.Add(param2);
     
                    param3 = new SqlParameter("@note2", SqlDbType.Float, 2);
                    param3.Value = note2;
                    myCommand.Parameters.Add(param3);
                    if (note1 != null && ((note1 <= 20 && note1 >= 0) || note1 == 99) && note1 != null && ((note2 <= 20 && note2 >= 0) || note2 == 99))
                    {myCommand.ExecuteNonQuery();}
     
                    else{Response.Write ("la note doit etre comprise entre 0 et 20");}
                }
                myConnection.Close();
            }
     
        }
    note 1 c'est la note de la matière dont le code =1 et note2 celle de code_matiere=2 ,note=99 quand l'étudiant est absent ,
    Merci

Discussions similaires

  1. [MySQL] problème update champ float valeur null
    Par dubitoph dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 25/02/2009, 11h42
  2. UPDATE+Valeur de retour
    Par viscere dans le forum SQL
    Réponses: 2
    Dernier message: 11/12/2007, 16h49
  3. [MySQL] Requête update valeur précédente + 1
    Par Oprichnik dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 16/06/2007, 12h27
  4. utiliser une valeur float pour une boucle for
    Par didi59650 dans le forum Débuter
    Réponses: 6
    Dernier message: 18/04/2006, 17h32
  5. Tester la valeur(float ou pas) d'un input text
    Par Battosaiii dans le forum Général JavaScript
    Réponses: 23
    Dernier message: 16/04/2006, 10h47

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