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 :

methode recevant un String et devant renvoyer un int


Sujet :

C#

  1. #1
    Membre habitué Avatar de isarian
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2005
    Messages : 268
    Points : 161
    Points
    161
    Par défaut methode recevant un String et devant renvoyer un int
    http://www.developpez.net/forums/sho...46#post3091246

    VOila en lien la base de mon problème

    Qui pourrait se resoudre avec une petite expliquation.

    Mon problème est un méthode qui reçoit un string, (le chemin du fichier) et devrait renvoier un entier (l'id du fichier)

    J'ai donc une procédure stockée qui se charge de selecter l'id par rapport au chemin mais dans le C# Comment cela va doit etre ecris?

    J'ai
    public void GetIdFichier(string chemin)
    {
    SqlConnection myConnection = new SqlConnection(connectionString);
    SqlCommand myCommand = myConnection.CreateCommand();

    myConnection.Open();
    myCommand.CommandText = "GetIdFichier";
    myCommand.CommandType = CommandType.StoredProcedure;
    SqlParameter FichierPath = new SqlParameter();
    FichierPath.ParameterName = "@FichierPath";
    FichierPath.SqlDbType = SqlDbType.VarChar;
    FichierPath.Value = chemin;
    myCommand.Parameters.Add(FichierPath);
    myCommand.ExecuteNonQuery();
    }

    Penser a faire un Quelque chose du genre public int getidfichier(string chemin)
    mais il me met comme erreur Error scruter.Class1.GetIdFichier(string)': not all code paths return a value

    et en public void je ne peux pas mettre un return.

    Merci d'avance pour toute expliquation.

  2. #2
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    459
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 459
    Points : 553
    Points
    553
    Par défaut
    Il ne faut pas que tu fasses un ExecuteNonQuery() mais que tu obtiennes un reader via ExecuteReader().
    Ensuite, tu récupères ton id et tu le retournes.

  3. #3
    Membre expérimenté Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Points : 1 443
    Points
    1 443
    Par défaut
    un void ne te retourne rien.

    tu dois faire juste çA
    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
    public int GetIdFichier(string chemin)
    {
    SqlConnection myConnection = new SqlConnection(connectionString);
    SqlCommand myCommand = myConnection.CreateCommand();
    
    myConnection.Open();
    myCommand.CommandText = "GetIdFichier";
    myCommand.CommandType = CommandType.StoredProcedure;
    SqlParameter FichierPath = new SqlParameter();
    FichierPath.ParameterName = "@FichierPath";
    FichierPath.SqlDbType = SqlDbType.VarChar;
    FichierPath.Value = chemin;
    myCommand.Parameters.Add(FichierPath);
    return myCommand.ExecuteScalar();
    }
    après faut voir comment est composé ta procédure stockée...
    il vaut mieux prendre son pied que de se prendre la tête!!

    http://bossun.noxblog.com

  4. #4
    Membre habitué Avatar de isarian
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2005
    Messages : 268
    Points : 161
    Points
    161
    Par défaut
    Merci pour l'info, j'ai un petit peu regarder et voilà ce que j'ai comme code

    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
         string connectionString = @"Data Source=EZOS-WAX5VQWD5D\SQLEXPRESS;Initial Catalog=BackupRestore;Integrated Security=True";
                SqlConnection myConnection = new SqlConnection(connectionString);
                SqlCommand myCommand = myConnection.CreateCommand();
                myConnection.Open();
                SqlDataReader reader = myCommand.ExecuteReader();
                myCommand.CommandText = "GetIdFichier";
                myCommand.CommandType = CommandType.StoredProcedure;
     
                SqlParameter FichierPath = new SqlParameter();
                FichierPath.ParameterName = "@FichierPath";
                FichierPath.SqlDbType = SqlDbType.VarChar;
                FichierPath.Value = @"C:\test backup restore\TestClassSéparer.txt";
                myCommand.Parameters.Add(FichierPath);
                myCommand.ExecuteReader();
     
                Console.WriteLine("test{0}", reader.Read() );
    Voilà le message d'erreur que je reçois

    ExecuteReader: CommandText property has not been initialized

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    459
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 459
    Points : 553
    Points
    553
    Par défaut
    Fais ExecuteReader() une fois que ta commande est complètement initialisée (texte, paramètres,...).
    Sinon, comme l'a fait remarquer bossun, ExecuteScalar() est plus simple si ta procédure ne renvoie que l'id du fichier.

  6. #6
    Membre habitué Avatar de isarian
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2005
    Messages : 268
    Points : 161
    Points
    161
    Par défaut
    YES merci sa renvoie bien ce que je veux avec myCommand.ExecuteScalar();

    MICI MICI MICI MICI


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. invoque une methode avec paramétre string
    Par Invité dans le forum Services Web
    Réponses: 0
    Dernier message: 21/11/2009, 01h04
  2. Formulaire devant renvoyer une valeur
    Par Binpush dans le forum IHM
    Réponses: 3
    Dernier message: 29/04/2009, 14h22
  3. Réponses: 4
    Dernier message: 14/05/2007, 10h45
  4. Réponses: 10
    Dernier message: 10/11/2006, 14h36
  5. Savoir si un String peut être parsé en int
    Par ®om dans le forum Langage
    Réponses: 24
    Dernier message: 07/07/2006, 23h52

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