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

ADO.NET Discussion :

SQL Image en vb.net


Sujet :

ADO.NET

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 12
    Points : 7
    Points
    7
    Par défaut SQL Image en vb.net
    Salut,

    Voila je galère depuis plusieurs jours pour insérer une image dans une base SQL puis la lire via un DataGridView ou autre.

    J'ai testé plusieurs sources mais sans succès.

    Pouvez-vous m'aider afin que je puisse insérer une image dans un champ SQL (image) puis la lire via un control DataGridView ou autre.

    Merci

  2. #2
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 193
    Points : 28 077
    Points
    28 077
    Par défaut
    TU peux peut-être t'inspirer de cette solution donnée par Microsoft :

    http://support.microsoft.com/?id=317034
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par sevyc64 Voir le message
    TU peux peut-être t'inspirer de cette solution donnée par Microsoft :

    http://support.microsoft.com/?id=317034
    Je te suggère de lire l'article en anglais, la traduction automatique est absolument catastrophique...

    En tous cas ceci est valable si tu utilises SQL Server, vu que l'instruction UPDATETEXT est specifique à ce SGBD.

    Dans le cas plus général, la solution est d'utiliser un paramètre de type binaire. Exemple :

    Code C# : 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
    using (var command = connection.CreateCommand())
    {
        command.CommandText = "INSERT INTO LA_TABLE(ID, IMAGE) VALUES(@id, @data)";
     
        DbParameter prmId = command.CreateParameter();
        prmId.ParameterName = "id";
        prmId.DbType = DbType.Int32;
        prmId.Value = 42; // par exemple...
     
        DbParameter prmData = command.CreateParameter();
        prmData.ParameterName = "data";
        prmData.DbType = DbType.Binary;
        prmData.Value = File.ReadAllBytes("mon_image.png");
     
        command.Parameters.AddRange(new[] { prmId, prmData });
        command.ExecuteNonQuery();
    }

    Cette solution est assez simple, mais a l'inconvénient de charger tout le fichier en mémoire, ce qui peut être gênant s'il est gros...

    Sinon, voilà une autre solution spécifique pour SQL Server :
    http://msdn.microsoft.com/en-us/libr...4(VS.100).aspx

    (en anglais)

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Salut,

    Merci pour vos réponses.

    Mais je galère toujours, la solution donner nécessite de charger toute la base a cause de Reader, moi j'utilise des BindingSource pour lire les infos ce qui est beaucoup plus pratique à mon goût .

    Je n'arrive toujours pas à lire une image stocker dans une base de donnée SQL Server avec en type "Image"

    Vous n'avez pas d'autres idées ?

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Salut,

    ERREUR DE MA PART

    en faite depuis le début tout marche correctement, sauf que j'avais sans faire attention mis une limite ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strObject.UpdateCommand.Parameters.Add("@Image", SqlDbType.Image, 16, "Image")
    DOnc du coup sa enregistrait que les 16 premier octect lol

    Voici la solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strObject.UpdateCommand.Parameters.Add("@Image", SqlDbType.Image, -1, "Image")
    Merci pour votre aide

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

Discussions similaires

  1. Gestion des Images SQl Server et Vb.Net
    Par eddyphan dans le forum VB.NET
    Réponses: 6
    Dernier message: 20/05/2011, 12h03
  2. Accéder à une bd SQl Server depuis le net ?
    Par Root_JDK dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 17/01/2007, 10h30
  3. Comment comparer deux date en SQL Server avec VB.NET
    Par Pedro Varela dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 11/09/2006, 15h26
  4. [SQL Server 2000][DTS][NET 1.1] Exécution d'un package DTS
    Par aldbaran dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 02/02/2006, 11h26

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