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

C# Discussion :

Erreur 1 'SiteDeTest.ClassConnexion.affiche()'*: tous les chemins de code ne retournent pas nécessai


Sujet :

C#

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 327
    Points : 204
    Points
    204
    Par défaut Erreur 1 'SiteDeTest.ClassConnexion.affiche()'*: tous les chemins de code ne retournent pas nécessai
    Bonjour,
    J'ai un script tout simple,je suis un grand débutant avec VS2008 et C#
    mon objectif est simple un bouton connecter un clic sur ce bouton
    et on obtient une connection à Accés et l'éxécution d'une requete SQL
    et l'affichage du résultat dans le contrôle label2
    voici le code html defautl.aspx :
    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
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="SiteDeTest._Default" %>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Site de Test</title>
    </head>
    <body>
     
     
     
        <form id="form1" runat="server">
     
     
     
        <asp:Button id="connecter" Text="Connecter" OnClick="Connexion" runat="server"/>
    <br /><br />
    <asp:Label ID="label1" ForeColor="red" runat="server"/>
     
     
     
     
     
     
     
        <p>
            <asp:Label ID="label2" runat="server" ForeColor="Red" ></asp:Label>
        </p>
     
     
     
     
     
     
     
        </form>
     
     
     
     
     
     
    </body>
    </html>
    voici le code c# default.aspx.cs
    qui appelle mes 2 méthodes seconnecter et affiche() le résultat retourné doit apparaitre dans label1 et label2
    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
    namespace SiteDeTest
    {
        public partial class _Default :System.Web.UI.Page
     
        {
            protected void Page_Load(object sender, EventArgs e)
            {
     
     
            }
     
            protected void Button1_Click(object sender, EventArgs e)
            {
     
            }
     
            protected void Connexion(object sender, EventArgs e)
            {
                label1.Text = ClassConnexion.seconnecter();
                label2.Text = ClassConnexion.affiche();
            }
     
     
        }
    }
    et voici ma classe qui a bien 2 return
    cela dit ma conversion de champs de tableau en string est peut etre mauvaise..
    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
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    using System;
    using System.Data;
    using System.Configuration;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
    using System.Data.OleDb;
     
     
    namespace SiteDeTest
    {
        public class ClassConnexion
     
        {
            private static OleDbConnection myAccessConn;
     
     
            public static string seconnecter()
            {
     
     
     
                OleDbConnection myAccessConn = new OleDbConnection();
     
                myAccessConn.ConnectionString = ConfigurationManager.ConnectionStrings["oConnectionString"].ConnectionString;
     
                myAccessConn.Open();
     
                return "Vous étés Connecté";  
     
            }
            public static string affiche()
            {
     
     
                string strAccessSelect = "SELECT * FROM Employé";
     
                // Crée le groupe de données et y ajoute la table Employé :
                DataSet myDataSet = new DataSet();
     
     
     
                OleDbCommand myAccessCommand = new OleDbCommand(strAccessSelect, myAccessConn);
                OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(myAccessCommand);
     
     
     
                myDataAdapter.Fill(myDataSet, "Employé");
     
     
                myAccessConn.Close();
     
     
                // Un groupe de données pouvant contenir plusieurs tables,
                // celles-ci sont toutes insérées dans un tableau :
                DataTableCollection dta = myDataSet.Tables;
                foreach (DataTable dtn in dta)
                {
                    return dtn.ToString();
                }
     
                DataRowCollection dra = myDataSet.Tables["Employé"].Rows;
                foreach (DataRow dr in dra)
                {
     
                    return dr.ToString();
                }
     
     
     
            }
     
        }
    }
    Voilà merci beaucoup
    j'ai cherché partout mais mes debut dans un langage sont toujours laborieux

  2. #2
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Dans la méthode affiche, images que dra soit vide tu ne rentres pas dans le foreach donc pas de return.

    Par ailleurs tu es au courant qu'un return dans un foreach est complétement inutile puisque tu sortira de ta méthode au tout premier.

    C'est peut-être un yield return que tu cherches à faire, ou bien même autre chose, dans tous les cas ton code est faux.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 327
    Points : 204
    Points
    204
    Par défaut
    Merci j'avais complétement oublier que return met fin à la boucle
    donc le mieux est de tester si le tableau n'est pas vide et si c'est le cas de renvoyer un tableau.
    Je vais voir ça
    Mais c'est quoi un yield return ?

Discussions similaires

  1. Réponses: 7
    Dernier message: 16/04/2020, 17h57
  2. Problème pour afficher tous les chemins possibles
    Par chakirlbr dans le forum Général Java
    Réponses: 5
    Dernier message: 12/02/2015, 21h44
  3. Réponses: 2
    Dernier message: 11/01/2013, 19h20
  4. Réponses: 9
    Dernier message: 17/10/2011, 12h41
  5. Réponses: 7
    Dernier message: 22/04/2010, 15h45

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