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

XML/XSL et SOAP Discussion :

[SQL-C#-PHP : SOAP] complexité des methodes C#


Sujet :

XML/XSL et SOAP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mai 2008
    Messages : 103
    Points : 36
    Points
    36
    Par défaut [SQL-C#-PHP : SOAP] complexité des methodes C#
    Bonjour,

    J'ai créé et fait fonctionner un Webservice codé avec Visual Studio en C# qui traite des données situées sur une base de donnée SQL et envoie les resultats via le protocol SOAP.
    Le client utilise des pages php pour obtenir et interpréter les renvoies du webservice (via NuSOAP). Donc tout marchait bien jusqu'à ..........maintenant.

    J'ai créé la méthode suivante qui ne marche pas :
    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
    public string methode1(int siteObjID)
            {
     
                var query = from c in db.MaTables
                            where c.chose == siteObjID && c.chose2 == 2
                            select c;
     
                int aa = 0, bb = 0, cc = 0, dd = 0, ee = 0, ff = 0, gg = 0, hh = 0, ii = 0, jj = 0, kk = 0, ll = 0;
                foreach (MaTable data in query)
                {
                    int value = ((int)data.MaValeur.Value);
                    if (value >= 345 && value <= 360 || value >= 0 && value < 15) { aa++; }
                    else if (value >= 15 && value < 45) { bb++; }
                    else if (value >= 45 && value < 75) { cc++; }
                    else if (value >= 75 && value < 105) { dd++; }
                    else if (value >= 105 && value < 135) { ee++; }
                    else if (value >= 135 && value < 165) { ff++; }
                    else if (value >= 165 && value < 195) { gg++; }
                    else if (value >= 195 && value < 225) { hh++; }
                    else if (value >= 225 && value < 255) { ii++; }
                    else if (value >= 255 && value < 285) { jj++; }
                    else if (value >= 285 && value < 315) { kk++; }
                    else if (value >= 315 && value < 345) { ll++; }
                }
                string xml = "<bla>";
                xml += aa.ToString();
                xml += "</bla>";
     
                return xml;            
            }
    alors que cette méthode par exemple marche :
    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
    public string methode2(int siteObjID)
            {            
                var query = from c in db.MaTables
                            where c.chose == siteObjID
                            select c.TimeStamp;
     
                DateTime firstDate = query.Min().Date;
     
                string stringFirstDate = firstDate.ToString();
                string tempDelim = " ";
                char[] delim = tempDelim.ToCharArray();
                string tempDelim2 = "/";
                char[] delim2 = tempDelim2.ToCharArray();
     
                string[] temp = stringFirstDate.Split(delim);
     
                DateTime endDate = query.Max().Date;
                string stringLastDate = endDate.ToString();
                string[] temp2 = stringLastDate.Split(delim);
     
                TimeSpan duration = endDate - firstDate;
     
                string[] goodDate = temp[0].Split(delim2);
                string[] goodDate2 = temp2[0].Split(delim2);
                string xml = "<DateStart>";
                xml += goodDate[2] + "-" + goodDate2[0] + "-" + goodDate[1];
                xml += "</DateStart>";
                xml += "<HourStart>";
                xml += temp[1];
                xml += "</HourStart>";
                xml += "<DateEnd>";
                xml += goodDate2[2] + "-" + goodDate2[0] + "-" + goodDate2[1];
                xml += "</DateEnd>";
                xml += "<HourEnd>";
                xml += temp2[1];
                xml += "</HourEnd>";
                xml += "<Duration>";
                xml += duration.Days;
                xml += "</Duration>";                                              
     
                return xml;        
            }
    Comme vous le voyez, dans celle qui ne marche pas, il y à une boucle for et donc un travail sur chaque donnée. A chaque donnée il vérifie quelque chose.
    Alors que sur celui qui marche ce n'est pas le cas.

    Est ce que quelqu'un peut m'aiguiller ?
    Je ne vois pas trop quoi faire. Peut être récupérer les données, les mettre dans une list<> puis traiter cette liste au lieux de traiter directement les données issues de sql ???

    Je vous remercie d'avance.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mai 2008
    Messages : 103
    Points : 36
    Points
    36
    Par défaut
    Je peux rajouter à mon post le message d'erreur que j'obtiens lorsque j'appelle la méthode du web service :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    System.InvalidCastException: Specified cast is not valid.
       at System.Data.SqlClient.SqlBuffer.get_Single()
       at System.Data.SqlClient.SqlDataReader.GetFloat(Int32 i)
       at Read_MainDataTable(ObjectMaterializer`1 )
       at System.Data.Linq.SqlClient.ObjectReaderCompiler.ObjectReader`2.MoveNext()
       at System.Linq.Enumerable.ElementAt[TSource](IEnumerable`1 source, Int32 index)
       at WebServiceTest.ServiceTest.getMeanMonth(Int32 dpoID) in C:\inetpub\wwwroot\WebServiceTest\ServiceTest.asmx.cs:line 359
       at WebServiceTest.ServiceTest.mean(Int32 dpoID) in C:\inetpub\wwwroot\WebServiceTest\ServiceTest.asmx.cs:line 382

Discussions similaires

  1. [MySQL] Traitement des erreurs SQL par Php?
    Par badoumba dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 12/10/2011, 09h43
  2. [SQL-C#-PHP : SOAP] complexité des methodes C#
    Par rudylar dans le forum Services Web
    Réponses: 1
    Dernier message: 04/07/2008, 18h16
  3. [RegEx] Changer ordre des lignes avec SQL et PHP
    Par kifouillou dans le forum Langage
    Réponses: 16
    Dernier message: 20/03/2008, 16h27
  4. [Linq to SQL] Ajouter des methodes aux entity
    Par anthyme dans le forum Accès aux données
    Réponses: 2
    Dernier message: 22/02/2008, 20h34
  5. [SQL] Concaténer des requêtes SQL en PHP
    Par brotelle dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 18/04/2006, 19h53

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