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

VB.NET Discussion :

VB et SQL Server


Sujet :

VB.NET

  1. #1
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 27
    Par défaut VB et SQL Server
    Bonjour!

    j'ai quelques petits problèmes, si vous pouvez m'aider pour un au l'autre j'en serais très reconnaissant!

    1- Lier un datagridview et un combobox.

    J'ai un datagridview qui affiche correctement le contenu d'un datatable dans un dataset. J'ai lié 3 textbox aux champs de mon datagridview avec le binding, et quand je change d'enregistrement dans le datagridview, mes 3 textbox affichent l'enregistrement courant. C'est parfait.

    J'ai une 4e colonne qui contient un entier qui est clé étrangère dans une autre table.
    1 - Monsieur
    2- Madame
    3- Enfant

    J'aimerais faire afficher la description plutôt que l'entier lorsque je fais le binding du datagridview et du combobox.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ComboBox1.DisplayMember = "DESCRIPTION"
    ComboBox1.ValueMember = "NOTYPETITRE"
    ComboBox1.DataSource = DsTitres1.Tables("TYPETITRE")
     
    ComboBox1.DataBindings.Add("text", DsAuteurs1._AUTEURS, "NOTYPETITRE")
    En ce moment, il affiche l'entier (NOTYPETITRE) dans le combobox quand je clique dans le datagridview. Mais quand j'ouvre le contenu du combobox, je vois bien les descriptions qui proviennent de mon autre table (Monsieur, Madame, Enfant). Je suis même capablde de modifier la valeur à partir de mon combobox qui affiche les description, et ça s'enregistre correctement dans la BD. La seule chose qui me manque, c'est que je ne veux pas voir les nombres 1-2-3 qui proviennent de mon datagridview, je veux que mon combobox n'affiche QUE la description, jamais l'entier.

    2-

    Je veux modifier un UpdateCommand d'un DataAdapter lié à une BD SQLServer. J'ai un champ DATE_MODIFIE que je veux mettre automatiquement la date du jour lors du UPDATE du DataAdapter.

    Voici le SQL original:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UPDATE    AUTEURS
    SET              NOM = ?, PRENOM = ?, NOTYPETITRE = ?, DATEMODIFIE = ?
    WHERE     (NOAUTEUR = ?) AND (NOM = ?) AND (PRENOM = ?) AND (NOTYPETITRE = ?) AND (DATEMODIFIE = ?)
    et je modifie ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UPDATE    AUTEURS
    SET              NOM = ?, PRENOM = ?, NOTYPETITRE = ?, DATEMODIFIE = GETDATE()
    WHERE     (NOAUTEUR = ?) AND (NOM = ?) AND (PRENOM = ?) AND (NOTYPETITRE = ?) AND (DATEMODIFIE = ?)
    Mais ça ne marche pas. Qu'est ce que je ne fais pas correct?

    Et autre petite question, j'ai le message suivant:
    Des informations sur la colonne source ont peut-être été perdues. Souhaitez-vous appliquer une nouvelle configuration de paramètres*?
    Que dois-je répondre? Oui j'imagine, mais je veux juste être sûr.

    Merci beaucoup!

    Mathieu

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 94
    Par défaut
    Bonjour,

    ComboBox1.DisplayMember = "DESCRIPTION"
    Le DisplayMember est la partie que la comboBox affiche, donc si tu ne veux pas qu'il affiche la description, il ne faut pas mettre la Description. Met plutôt ton autre champ.

    Pour ta requête, le champ DATEMODIFIE est bien de type DateTime ?
    Quel erreur cette requête te renvoie ?

  3. #3
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 27
    Par défaut
    En fait je veux afficher la description dans le combobox, pas l'entier. Et quand j'ouvre le contenu du combobox, je vois bien la description, alors ça ça marche bien aussi.

    Ce qui marche moins bien, c'est que dans mon DataGridView j'ai une colonne qui contient un entier (c'est correct ça aussi) mais quand je sélectionne un enregistrement, il m'affiche dans mon combobox le même entier qui apparaît dans mon datagridview.

    Ce que j'aimerais, c'est qu'il soit assez "intelligent" pour m'afficher la description de l'entier (ex: 1 c'est Monsieur) dans le combobox plutôt que l'entier, lorsque je clique sur l'enregistrement du DataGridView.

    ---

    Pour l'autre question, oui le champ DATEMODIFIE est de type DateTime. Et en fait je n'ai aucun message d'erreur, mais la mise à jour de ce champ ne se fait pas (mais les autres champs oui, alors je sais que mon Update est exécuté).

    Merci encore!

    Mathieu

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 94
    Par défaut
    Excuse-moi, j'avais rien compris.

    Sinon, pour ton problème d'UPDATE, c'est assez étrange. Si tu essaie avec CURRENT_TIMESTAMP au lieu de getDate(), est-ce que le champ DATEMODIFIE est mis à jour ?

  5. #5
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 27
    Par défaut
    Rebonjour,

    merci pour l'aide! J'ai essayé avec CURRENT_TIMESTAMP mais j'ai le même problème, le champ DATEMODIFIE n'est pas mis à jour.

    J'ai changé d'outil pour me connecter à SQL Serveur, maintenant j'utilise directement les outils SqlConnexion, SqlDataAdapter etc (au lieu de OleDb). Je me suis dit que j'avais plus de chance que ça fonctionne, mais non

    Voici mon nouveau code avec les outils SqlServer:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    UPDATE    AUTEURS
    SET              NOM = @NOM, PRENOM = @PRENOM, NOTYPETITRE = @NOTYPETITRE, DATEMODIFIE = CURRENT_TIMESTAMP
    WHERE     (NOAUTEUR = @Original_NOAUTEUR) AND (NOM = @Original_NOM) AND (PRENOM = @Original_PRENOM) AND 
                          (NOTYPETITRE = @Original_NOTYPETITRE)
    Merci encore!

    Mathieu

Discussions similaires

  1. Pb migration Access / SQL server
    Par yoyo dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 25/04/2005, 10h39
  2. Quel outil choisir pour un développement SQL-Server ?
    Par Mouse dans le forum Débats sur le développement - Le Best Of
    Réponses: 23
    Dernier message: 12/08/2003, 06h23
  3. [Kylix] sql server & kylix
    Par fehmitn dans le forum EDI
    Réponses: 1
    Dernier message: 23/08/2002, 19h44
  4. Backup BD SQL Server
    Par Ethmane dans le forum Administration
    Réponses: 3
    Dernier message: 07/06/2002, 00h42

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