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

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 74
    Points : 64
    Points
    64
    Par défaut Aucun mappage n’existe à partir du type d’objet System.Data.DataRowView vers un type connu de fournisseur nati
    Bonjour
    Je sollicite l’aide de tout le monde pour trouver une solution à un problème qui me bloque dans l’évolution de mon application.
    Pour faire court, j’ai un formulaire Form4 qui sert à faire des opérations sur la table CATEGORIEPRODUIT .Dans le formulaire il y a une liste déroulante CboRechCat qui est alimentée par ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub ListeRechCat()
            Dim mondataset As DataSet
            mondataset = New DataSet()
            Dim dta As New SqlDataAdapter("select * from CATEGORIEPRODUIT", cnnBase)
            dta.Fill(mondataset, "CATEGORIEPRODUIT")
            With CboRechCat
                .DataSource = mondataset.Tables("CATEGORIEPRODUIT")
                .DisplayMember = "NOMCATPRODUIT"
                .ValueMember = "CODECATPRODUIT"
            End With
        End Sub
    L’appelle à la procédure se fait par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Form4_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyClass.Load
            cnnBase.ConnectionString = "Data Source=JEANNICOLAS-PC ;Initial Catalog=Facturation;Integrated Security=True"
            cnnBase.Open()
            Call ListeRechCat()
    End Sub
    Tous les autres codes fonctionnent bien seulement, si je clic sur la liste déroulante il s’affiche un message d’erreur : « Aucun mappage n’existe à partir du type d’objet System.Data.DataRowView vers un type connu de fournisseur natif managé »
    Le message s'affiche au chargement du formulaire ou quand je clic sur la liste déroulante.
    J’ai aussi essayé le code suivant, mais c’est le même message qui s’affiche.
    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
    Sub InitListe()
            Try
                Dim cmdRechCat As New SqlCommand, adptRechCat As New SqlDataAdapter,
                dsRechCat As New DataSet
                dsRechCat.Clear()
                cmdRechCat.Connection = cnnBase
                cmdRechCat.CommandType = CommandType.StoredProcedure
                cmdRechCat.CommandText = "dbo.SelectCategorieProduit2"
                adptRechCat.SelectCommand = cmdRechCat
                adptRechCat.Fill(dsRechCat)
                CboRechCat.DataSource = dsRechCat.Tables(0)
                CboRechCat.DisplayMember = "AFFICHER"
                CboRechCat.ValueMember = "CODECATPRODUIT"
                cmdRechCat = Nothing
                adptRechCat = Nothing
                dsRechCat = Nothing
            Catch objException As Exception
                MsgBox(objException.Message)
    End Sub
    Ma question est de savoir ce qui est à la base de ce message et comment résoudre le problème.
    Merci pour tous les apports
    Jean

  2. #2
    Membre expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Points : 3 568
    Points
    3 568
    Par défaut
    Regarde la solution 2 ici, c'est peut-être le même problème : http://www.codeproject.com/Questions...-system-data-d
    Microsoft MVP : Windows Platform

    MCPD - Windows Phone Developer
    MCPD - Windows Developer 4

    http://www.guruumeditation.net

    “If debugging is the process of removing bugs, then programming must be the process of putting them in.”
    (Edsger W. Dijkstra)

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 74
    Points : 64
    Points
    64
    Par défaut
    Bonjour
    Merci pour votre apport mais ce n'est visiblement pas le même problème. Mais je vais y réfléchir en profondeur et l'anglais ne facilite pas ma compréhension.
    D'autres suggestions sont attendues.
    Merci

  4. #4
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 175
    Points : 151
    Points
    151
    Par défaut
    Bonjour

    tu peux utiliser un "DataReader"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
          Dim Cmd As New SqlCommand("select * from CATEGORIEPRODUIT", cnnBase)
            Dim DR As SqlDataReader = Cmd.ExecuteReader()
            Try
                If DR.HasRows Then
                    While DR.Read
                        CboRechCat.Items.Add(DR("CODECATPRODUIT"))
                    End While
                End If
                DR.Close()
            Catch ex As Exception
     
            End Try
    A+

  5. #5
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut
    bonjour
    Tu es certain que dans cette ligne,il n' y a pas d'erreur de frappe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    CboRechCat.ValueMember = "CODECATPRODUIT"
    & que le nom du champ entre guillements est orthographié correctement comme il est en base SQL....
    Car ce message signe que le nom de champ donne dans ValueMember à la DataRowView (ligne) de la DataView(DataView est la datatable) et celui en Base SQL dans la table SQL ne coincident pas(mapping c'est la correspondance entre datable et table en base)...
    Bon code...

  6. #6
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 74
    Points : 64
    Points
    64
    Par défaut
    Bonjour
    Pour répondre à MABROUKI, je dirai que j'ai vérifié et il n'y a pas d'erreur sur la ligne.
    A abd75web, je vais essayer ce code.

    Entière reconnaissance pour les apports jusqu'à la résolution du problème.
    Merci

  7. #7
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 74
    Points : 64
    Points
    64
    Par défaut
    Bonjour

    J'ai essayer le code de abd75web mais chaque ligne sélectionnée dans liste s'ajoute une ou plusieurs dans la liste.
    ce qui crée des doublons dans la liste.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim Cmd As New SqlCommand("select * from CATEGORIEPRODUIT", cnnBase)
            Dim DR As SqlDataReader = Cmd.ExecuteReader()
            Try
                If DR.HasRows Then
                    While DR.Read
                        CboRechCat.Items.Add(DR("CODECATPRODUIT"))
                    End While
                End If
                DR.Close()
            Catch ex As Exception
    je n'ai toujours pas trouvé l'origine du problème
    Merci pour les apports

Discussions similaires

  1. item listbox system.data.datarowview
    Par gelwc dans le forum VB.NET
    Réponses: 4
    Dernier message: 22/03/2010, 20h16
  2. Réponses: 7
    Dernier message: 20/07/2009, 21h42
  3. [vs2003] c# combobox System.Data.DataRowView
    Par wayak3 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 17/06/2009, 11h12
  4. Réponses: 5
    Dernier message: 12/10/2006, 13h49

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