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

Services Web Discussion :

HTTP 500 - Erreur interne du serveur


Sujet :

Services Web

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 16
    Points : 10
    Points
    10
    Par défaut HTTP 500 - Erreur interne du serveur
    ce code fonctionne a merveille,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    OleDbDataReader dr1;
                    OleDbCommand cmd1 = new OleDbCommand("SELECT count(*) FROM requette", connection);
                    n=(int) cmd1.ExecuteScalar();
     
                    connection.Close();
                }
     
            }
            return  n.ToString();
    mais celui là, provoque l'erreur "HTTP 500 - Erreur interne du serveur "

    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
     
    OleDbDataReader dr1;
                    OleDbCommand cmd1 = new OleDbCommand("SELECT count(*) FROM requette", connection);
                    n=(int) cmd1.ExecuteScalar();
                    cmd1.Dispose();
                    int[]tab= new int[n]; 
     
                    OleDbCommand cmd = new OleDbCommand("SELECT id_req FROM requette", connection);
                    dr1 = cmd.ExecuteReader();
                     if (dr1.Read())
                    {
                    for(int i=0; i<n;i++)
                  {
                      tab[i] = dr1.GetInt32(i);
                  }
              }
               c = tab[0].ToString() + tab[1].ToString();
               dr1.Close();
                    connection.Close();
                }
     
            }
            return  n.ToString();
    pouvez vous m'aider a corrigé ce code merci d'avance

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France, Somme (Picardie)

    Informations forums :
    Inscription : Avril 2009
    Messages : 55
    Points : 64
    Points
    64
    Par défaut
    Peux-tu nous envoyer le message d'erreur qui va avec le code 500 ?
    Ca peut être utile pour trouver l'erreur.

    Mais sinon, je dirai que l'erreur vient de la manière dont tu utilise ton DataReader :
    • dr1.Read() permet de lire les lignes retournées une par une,
    • dr1.GetInt32(i) permet de lire la valeur sur la colonne i de la ligne courante


    Etant donné que tu cherche à récupérer la valeur de la colonne 1 pour chaque ligne, tu devrai plutot faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for (int i = 0; i < n; i++)
    {
        dr1.Read()
        tab[i] = dr1.GetInt32(0);
    }
    Et tant qu'on y est, pourquoi ne pas utilise une collection plutôt qu'un tableau ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    OleDbDataReader dr1;
    List<int> tab = new List<int>(); // on déclare et instancie la liste d'entier
     
    OleDbCommand cmd = new OleDbCommand("SELECT id_req FROM requette", connection);
    dr1 = cmd.ExecuteReader();
     
    while (dr1.Read()) // tant que l'on peut lire une nouvelle ligne dans le résultat
    {
        tab.Add(dr1.GetInt32(0)); // on ajoute la première valeur de ma ligne à la liste
    }
    dr1.Close();
    return tab.Count.ToString(); // on renvoi le nombre de ligne récupérée
    Avec le code ci-dessus, on fait une requête de moins sur la base.

    Cdt,
    Kevin D.
    Consultant/Formateur .NET
    Blog

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    merci, mon code est plus pratique, propre est pro comme ça, mais que'est ce que je doit faire avec cet erreur?

    "The type or namespace name 'List' could not be found (are you missing a using directive or an assembly reference?)"

    merci

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France, Somme (Picardie)

    Informations forums :
    Inscription : Avril 2009
    Messages : 55
    Points : 64
    Points
    64
    Par défaut
    En haut de ton fichier de code, avec les autres using, ajoute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    using System.Collections.Generic;
    Cdt,
    Kevin D.
    Consultant/Formateur .NET
    Blog

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    c'est bon ca marche
    dsl pour le retard, j'ai du bossé sur autre chose

  6. #6
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    voilà mon code, mais ca fonctionne pas, y a quelque chose qui cloche au niveau de la 2eme requette


    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
     
    [WebMethod]
        public tableau[] synchro()
        {
           tableau[] t = null;
            OleDbConnection connection = new OleDbConnection(con);
            try
            {
                connection.Open();
            }
            catch
            {
               // return "Impossible de se connecté a la base de donnée!";
            }
            finally
            {
                using (connection)
                {
     
                 OleDbDataReader dr1;
                 OleDbDataReader dr;
                    List<int> tab = new List<int>(); // on déclare et instancie la liste d'entier
                    OleDbCommand cmd = new OleDbCommand("SELECT id_req FROM requette", connection);
                    dr1 = cmd.ExecuteReader();
     
                    while (dr1.Read()) // tant que l'on peut lire une nouvelle ligne dans le résultat
                    {
                        tab.Add(dr1.GetInt32(0)); // on ajoute la première valeur de ma ligne à la liste
                    }
                    dr1.Close();
                    t = new tableau[tab.Count];
                   for (int i=0; i< tab.Count; i++)
                        {
     
                       OleDbCommand cmd1 = new OleDbCommand("SELECT * FROM requette WHERE ( id_req = '" + tab[i] + "')", connection);
                      dr = cmd1.ExecuteReader();
                      t[i].num_serie =dr.GetInt32(1) ;
                      t[i].tache = dr.GetInt32(3);
                      t[i].remarque = dr.GetString(4); 
                     dr.Close();
                   }
     
                    connection.Close();
                }
     
            }
            return t;
        }
    j'utilise access comme Base de donnée,


  7. #7
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    c'est vraiment urgent pour mon projet de fin d'etude, merci pour votre aide

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France, Somme (Picardie)

    Informations forums :
    Inscription : Avril 2009
    Messages : 55
    Points : 64
    Points
    64
    Par défaut
    Effectivement, tu as une erreur dans ta requête SQL

    Actuellement, tu utilise cette requête (le 0 est utilisé à titre d'exemple) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM requette WHERE ( id_req = '0' )
    Or, en SQL, seuls les caractères et chaînes de caractères se trouvent entre quote.
    Ta requête devrait donc rassembler à ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM requette WHERE ( id_req = 0 )
    Cdt,
    Kevin D.
    Consultant/Formateur .NET
    Blog

  9. #9
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    meme avec ça, ca genere l'exception suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    System.Data.OleDb.OleDbException: La table 'requette' est déjà ouverte en mode exclusif par un autre utilisateur, ou elle est déjà ouverte par l'interface utilisateur et ne peut pas être manipulée par programmation.
       at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
       at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
       at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
       at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
       at System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior)
       at System.Data.OleDb.OleDbCommand.ExecuteReader()
       at Service.synchro() in c:\Inetpub\wwwroot\wservice\App_Code\Service.cs:line 99

  10. #10
    Invité
    Invité(e)
    Par défaut
    Salut,

    La table 'requette' est d&#233;j&#224; ouverte en mode exclusif par un autre utilisateur, ou elle est d&#233;j&#224; ouverte par l'interface utilisateur et ne peut pas &#234;tre manipul&#233;e par programmation
    Est-ce que tu accèdes à ta table requette via access pendant que tu fais test tests via le web?

    Si oui, ferme access et refais un tests

  11. #11
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    c'est pas le cas mon ami

  12. #12
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    j'ai testé avec l'executescalar et ça a marché, le probléme est dans l'executeReader, et je sais pas encore quoi faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    OleDbCommand cmd1 = new OleDbCommand("SELECT num_serie FROM requette WHERE ( id_req =?)", connection);
                       cmd1.Parameters.Add("id_req", tab[i]);
                     //  dr = cmd1.ExecuteReader();
                       t[i].num_serie =(int) cmd1.ExecuteScalar();

Discussions similaires

  1. [Wamp] HTTP 500 Erreur interne au serveur - include
    Par grandjeanluc dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 06/05/2009, 19h58
  2. Réponses: 1
    Dernier message: 22/09/2008, 12h18
  3. HTTP 500 - Erreur interne de serveur
    Par VIRGINIE87 dans le forum ASP
    Réponses: 7
    Dernier message: 16/04/2008, 09h53
  4. Problème apache : http 500 erreur interne au serveur
    Par marvelromy dans le forum Apache
    Réponses: 4
    Dernier message: 08/01/2008, 12h38
  5. HTTP 500 erreur interne au serveur !
    Par melendil dans le forum Serveurs (Apache, IIS,...)
    Réponses: 3
    Dernier message: 04/12/2006, 19h49

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