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 :

uploader un fichier dans une base de données MySQL


Sujet :

C#

  1. #1
    Membre à l'essai
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    23
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 23
    Points : 15
    Points
    15
    Par défaut uploader un fichier dans une base de données MySQL
    bonjour,
    je suis entrain de développer une application web où on Upload des fichiers dans une BD MySQL(je suis débutante en C#)
    voici mon code pour uploader un fichier:
    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
    protected void uploadFich(object sender, EventArgs e)
        {
            string host = "localhost";
            string database = "commission";
            string user = "root";
            string password = "ABHM";
            string strSQL = "insert into fichiers('NomFich','Fichier') values('" + NomFich.Text + "','" + FileUpload1.FileBytes + "')";
            string strProvider = "Data Source=" + host + ";Database=" + database + ";User ID=" + user + ";Password=" + password;
            try
            {
                MySqlConnection mysqlCon = new MySqlConnection(strProvider);
                mysqlCon.Open();
                if (mysqlCon.State.ToString() == "Open" )
                {
                    MySqlCommand mysqlCmd = new MySqlCommand(strSQL, mysqlCon);
                   int comm = mysqlCmd.ExecuteNonQuery();
                    if (comm == null )
                    { Response.Redirect("erreurupload.aspx");}
                    else
                    { Response.Redirect("upload2.aspx");}
                }
                mysqlCon.Close();
     
     
            }
            catch( Exception er)
            {
                Label1.Text = er.Message ;
            }
     
     
        }

    le champs Fichier de ma table est de type LongBlob.
    mon code ça marche pas : après l'exécution je retiens pas le fichier dans la BD je retiens le champ fichier : System.BYtes[];
    moi je veux avoir le fichier dans ma BD
    il ya une erreur au niveau de la requette !!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "insert into fichiers('NomFich','Fichier') values('" + NomFich.Text + "','" + FileUpload1.FileBytes + "')";
    merci d'avance

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Février 2010
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Février 2010
    Messages : 55
    Points : 86
    Points
    86
    Par défaut
    Salut,

    Si j'ai bien compris, tu souhaitent stocker un fichier dans ta BD, mais quel type de fichier ?
    Quand on doit faire des travaux impliquant des fichiers, on ne les stockent jamais sur la BD. On insert juste dans la BD un lien pointant vers le fichier en question.
    Ce que je te conseil avant d'exploser ta BD c'est d'uploader ton fichier vers ton serveur et ensuite dans ton champs 'fichier' d'insérer le lien de ton fichier.

    A moins que Mysql puisse stocker n'importe quel type de fichier ...

  3. #3
    Membre habitué
    Inscrit en
    Mars 2005
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 131
    Points : 158
    Points
    158
    Par défaut Variable liées
    Bonjour,

    Généralement quand on veut stocker un fichier dans une base de données,on utilise les variables liés et non pas des requête sql avec les valeurs concaténés, je m'explique, bon déjà la première chose c'est que ton champ et de type blob et ça c'est bien, maintenant pour alimenter ce champ là, on doit utiliser une requête paramétré quand crée avec l'objet MySqlCommand , ensuite on ajoute des objets de typae MySqlParameter .

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    MySqlConnection con = new MySqlConnection("xxxxx");
    MySqlCommand com = new MySqlCommand("INSERT INTO test.pictest (pictest.PicArray,
    pictest.PicID) VALUES (?picarray, ?picid)", con);
    byte[] picarray = new byte[1000];
    picarray.Initialize();
    com.Parameters.Add("?picarray", picarray);
    com.Parameters.Add("?picid", 1);
    con.Open();
    com.ExecuteNonQuery();
    con.Close();
    à vous de jouer et adapter ça a votre besoin

    Bon courage

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/08/2014, 12h28
  2. insertion fichier dans une base de données MYSQL
    Par Globolite dans le forum Requêtes
    Réponses: 5
    Dernier message: 23/01/2013, 18h15
  3. stocker des fichiers dans une base de donnée MYSQL
    Par Invité(e) dans le forum MySQL
    Réponses: 5
    Dernier message: 03/12/2009, 13h10
  4. Upload de fichier dans une base de données MySQL
    Par miko2009 dans le forum W4 Express
    Réponses: 1
    Dernier message: 07/01/2009, 19h16
  5. [PostgreSQL] [PostGreSQL] Upload de fichier dans une base de données
    Par ZIED dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 18/01/2008, 15h01

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