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 :

ajout d'une image


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 22
    Par défaut ajout d'une image
    Salut a tous
    J'ai bien bien cherché, j'ai tout essayé mais j'ai pas trouvé de solution. Je voulais ajouter une image dans une base sqlserver via un bouton
    et je voulais que l'id de l'image reste stocker pour que je puisse l'utiliser. Le gros problème c'est que l'image s'ajoute dans la base mais l'id retourné est toujours 0.

    Voici le code de la méthode insérer image qui ajoute et retourne l'id :
    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
     
    string InsererImage(HttpPostedFile htu)
        {
            try
            {
                Stream strob;
                int filength = htu.ContentLength;
                Byte[] bbtt;
                bbtt = new Byte[filength];
                strob = htu.InputStream;
                strob.Read(bbtt, 0, filength);
                SqlConnection con2;
                SqlCommand cmd1;
                con2 = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=D:\\projet europcar\\App_Data\\europcar.mdf;Integrated Security=True;User Instance=True");
                con2.Open();
                cmd1 = new SqlCommand("InsertImage", con2);
                cmd1.CommandType = CommandType.StoredProcedure;
                cmd1.Parameters.Add(new SqlParameter("@Photo", bbtt));
                cmd1.Parameters.Add(new SqlParameter("@TypeImage", htu.ContentType));
                cmd1.Parameters.Add(new SqlParameter("@Taille", filength));
                //cmd1.ExecuteNonQuery();
                 //o = cmd1.ExecuteScalar();
                 object obj = cmd1.ExecuteScalar();
                 if (obj != null)
                 {
                     o= int.Parse(obj.ToString());
                 }
                con2.Close();
                MessageBox.Show("ID:"+o.ToString()); 
                return o.ToString();
          }
            catch (Exception e)
            {
                e.ToString();
                MessageBox.Show(o.ToString());
                return (o.ToString());
            }
     
        }
    Merci de m'aider.

  2. #2
    Membre éprouvé
    Inscrit en
    Mars 2005
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 131
    Par défaut
    Bonjour,

    T'a essayé d'utiliser une table a la place d'une procédure stockée ?

  3. #3
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Si tu prends la documentation, tu peux lire ceci sur la méthode
    Exécute la requête et retourne la première colonne de la première ligne du jeu de résultats retourné par la requête. Les colonnes ou lignes supplémentaires sont ignorées.
    En l'occurrence ta procédure stockée ne renvoie rien je pense (ou alors elle le fait mal). Le résultat est donc normal à partir de là.

    Sinon, il est inutile de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    o= int.Parse(obj.ToString());
    Si ta procédure stockée renvoie une valeur il suffit normalement de caster directement dans le bon type. Par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int id = (int)cmd1.ExecuteScalar();

  4. #4
    Membre averti
    Inscrit en
    Septembre 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 22
    Par défaut
    merci pour vos réponses

    j'utilise cette procédure stockée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ALTER PROCEDURE InsertImage (@Photo image,@TypeImage Varchar(50),@Taille bigint )
    AS
    INSERT INTO ta
    (Photo,TypeImage,Taille)
    VALUES
    (@Photo,@TypeImage,@Taille)
    ma procédure stockée ne renvoie aucune valeur est ce que il ' ya une solution pour que je puisse recevoir l'id de l'image ajouter ??
    merci

  5. #5
    Membre averti
    Inscrit en
    Septembre 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 22
    Par défaut
    merci j'ai trouvé la solution comme un grand

    il faut ajouter à la fin de la procédure stockée
    select tous simple efficace
    et j'ai mis comme StormimOn m'a dit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int id = (int)cmd1.ExecuteScalar();
    c bon merci

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 07/05/2008, 11h31
  2. Réponses: 3
    Dernier message: 12/04/2008, 04h14
  3. Réponses: 2
    Dernier message: 10/11/2006, 14h23
  4. [RSS 2.0] Restriction du nombre d'items et ajout d'une image
    Par nath70 dans le forum XML/XSL et SOAP
    Réponses: 14
    Dernier message: 09/10/2006, 13h11
  5. Ajout d'une image ds un ListView
    Par Ribéry dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 10/08/2006, 17h56

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