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

Développement Windows Discussion :

Souci SQL d'update sur VARBINARY(MAX)


Sujet :

Développement Windows

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de SkyZoThreaD
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2013
    Messages
    585
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 585
    Par défaut Souci SQL d'update sur VARBINARY(MAX)
    Bonjour à tous,

    Je ne crois pas avoir trouvé de cas similaires au mien ici alors que je cherche à faire quelque chose de plutôt standard.... Du coup ça vient probablement de moi
    Voilà mon souci: Je cherche à implémenter une colonne varbinary(max) dans mon appli pour sauvegarder le contenu de WPF RichTextBox directement dans la base SQL.
    Je convertis donc le RichTextBox.Document en byte[] au format Xaml.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    TextRange range = new TextRange(rtb.Document.ContentStart, rtb.Document.ContentEnd);
    MemoryStream s = new System.IO.MemoryStream();
    range.Save(s, DataFormats.XamlPackage);
    s.Seek(0, SeekOrigin.Begin);
    byte[] raw = s.ToArray();
    Et je le balance en SQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    using (SqlConnection conn = new SqlConnection(ConnectionString))
    {
        SqlCommand cmd = new SqlCommand("INSERT INTO dbo.Tickets (id, idclient, appelant, descriptif_rich) VALUES(NEWID(), @idclient, @appelant, @descriptif_rich)", conn);
        cmd.Parameters.Add("@idclient", SqlDbType.Int);
        cmd.Parameters.Add("@appelant", SqlDbType.NVarChar);
        cmd.Parameters.Add("@descriptif_rich", SqlDbType.VarBinary, descriptif_rich.Length).Value = descriptif_rich;
     
        cmd.Parameters["@idclient"].Value = idcliwavesoft;
        cmd.Parameters["@appelant"].Value = appelant;
        conn.Open();
        cmd.ExecuteNonQuery();
        conn.Close();
    }
    Ça fonctionne parfaitement avec cette requête INSERT, mais quand je veux faire un UPDATE de la même façon, la modif semble bien effective (le champs change bien dans la base), mais quand je le recharge dans un Richtextbox, il est blanc.
    Voici le code qui recharge:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TextRange range = new TextRange(rtb.Document.ContentStart, rtb.Document.ContentEnd);
    range.Load(data, DataFormats.XamlPackage);
    Je n'ai pas de gros doutes sur le code qui charge/décharge dans le RichTextBox car il fonctionne pour les champs qui n'ont pas subit d'update...
    N'hésitez pas à demander des précisions.

    Merci d'avance.

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 194
    Par défaut
    tu net mets rien dans le memorystream et tu ne t'en sers pas ...

    il est possible de l'initialiser avec un tableau de byte (new memorystream(les_bytes))
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre émérite Avatar de SkyZoThreaD
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2013
    Messages
    585
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 585
    Par défaut
    Woaw je ne l'avais pas vu celle-là... pas mal. Il s'agit de vestiges d'un copy paste.
    Merci de la relever, mais ça n'a pas d'impact. C'était les deux seules lignes où apparaissait cette variable.
    Bref, j'ai posté un peu vite en plein rush. Je vais corriger les balises code pour clarifier le truc :p
    Pour que les gens comprennent ta réponse, voilà le code originalement posté.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    TextRange range = new TextRange(rtb.Document.ContentStart, rtb.Document.ContentEnd);
    var fStream = new MemoryStream(); // <-- this
    range.Load(data, DataFormats.XamlPackage);
    fStream.Close(); // <-- and that wtf  ?!

  4. #4
    Membre émérite Avatar de SkyZoThreaD
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2013
    Messages
    585
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 585
    Par défaut
    Ok, ce code fonctionne à merveille en fait...
    C'est bien-sûr une erreur de tête en l'air... Le contrôle RTB n'était pas le bon...

    Merci à ceux qui ont perdu 5 minutes de leur temps pour un souci de nul.

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

Discussions similaires

  1. [SQL 2005] Update et condition sur les SET
    Par frechy dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 02/07/2007, 15h54
  2. probleme d'update sur sql
    Par Mnementh63 dans le forum Services Web
    Réponses: 3
    Dernier message: 12/04/2007, 12h33
  3. [SQL Server 2000] UPDATE sur tous les champs de ma table
    Par neeux dans le forum Langage SQL
    Réponses: 8
    Dernier message: 11/12/2006, 10h13
  4. Réponses: 6
    Dernier message: 05/12/2006, 10h28
  5. [SQL Server] Requete update sur 2 champs
    Par galou10 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 21/02/2006, 20h22

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