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

Windows Forms Discussion :

DbProviderFactory inexistant (VS 2008)


Sujet :

Windows Forms

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 9
    Points : 6
    Points
    6
    Par défaut DbProviderFactory inexistant (VS 2008)
    Bonjour,

    je viens vous demander des informations concernant le DbProviderFactory. En effet, celui-ci ne semble pas pouvoir être utilisé dans mon code alors que j'ai bien indiqué les librairies qui conviennent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    using System.Data.Common;
    using System.Data;
    Je précise que je suis sur Visual Studio 2008.

    Y aurait-il quelque chose que j'ai oublié?

    Cordialement.

  2. #2
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    Quel est ton message d'erreur ?

    DbProviderFactory étant une classe abstraite, sache que tu ne peux pas l'instancier directement, il faut utiliser une de ses classes enfants.

    Si tu peux, montre nous aussi le bout de code où tu l'utilise.
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Je tente de l'utiliser dans le chargement du formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
            private void FormTableau_Load(object sender, EventArgs e)
            {
                if (BaseSQLServerDataSetUtil.DesignerUtil.IsRunTime())
                {
                    // TODO*: supprimez cette ligne de code pour retirer AutoFill par défaut pour 'baseSQLServerDataSet.SALARIE'.
                    this.sALARIETableAdapter.Fill(this.baseSQLServerDataSet.SALARIE);
                }
                DbProviderFactory dbpf = DbProviderFactories.GetFactory("System.Data.SqlServerCe");
                DbConnection maConnexion;
                maConnexion = dbpf.CreateConnection();
                string connStr;
                connStr = "Provider=SQLOLEDB.1;User ID=monid;Password=monpass;Data source=C:\\Documents and Settings\\Sora\\Mes documents";
            }
    Sauf que DbProviderFactory ainsi que DbProviderFactories.GetFactory("System.Data.SqlServerCe") ne sont pas trouvés par visual studio 2008. Le message d'erreur est celui disant qu'une référence ou une assembly peut être manquante...

  4. #4
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    Effectivement, car tu utilise SQLServerCe.

    Il te faut donc la dll contenant cet espace de nom pour pouvoir récupérer sa ProviderFactory.
    Il suffira de la rajouter dans les références au projet, pas besoin de rajouter un using.
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    S'il s'agit du System.Data.SqlServerCe, je l'ai déjà en référence, j'ai même tenté par le using mais cela ne change rien. Serait-ce lié à la plateforme cible? (Windows Mobile 5.0 Pocket PC SDK). Autrement, j'ai un avertissement qui peut peut-être poser problème :
    MSB3247 : Des conflits entre différentes versions du même assembly dépendant ont été rencontrés.

  6. #6
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    Cet avertissement survient quand tu as plusieures versions de la même assembly qui sont utilisées dans ton application. Pour le résoudre, double-clic dessus, VS va te proposer de résoudre le conflit en modifiant le fichier de configuration de l'application et tu n'as plus qu'à cliquer sur oui.
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Merci pour tes réponses laedit, mais le problème est qu'il indique une erreur, mais il n'identifie pas les assembly en conflit, donc le double-clic ne donne rien. Je pense avoir trouvé le problème (soit la référence System.Data.SqlServerCe), mais j'en ai besoin dans mon programme.

    Autrement, je pense que mon problème vient de la plateforme, j'ai fait des tests sur visual studio 2008 en plateforme windows et plateforme windows mobile 5.0 Or, sur plateforme windows mobile 5.0, le DbProviderFactory n'est pas proposé. Je pense donc qu'il y a une autre méthode de connexion à une base de données, le système ne doit pas être le même.

    Mon objectif est de me connecter à une base de données spécifique aux pocket pc ou smartphones et d'interagir avec celle-ci. Je chercherais donc des explications sur la technique employée si celle-ci est différente de la plateforme classique windows.

  8. #8
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    Apparemment DbProviderFactory n'existe pas dans le Compact Framework. Il va donc falloir faire autrement.

    Tu devras donc créer directement ta connexion grâce à la classe SqlServerCeConnexion (ou équivalent).
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Ce que j'ai compris est que je passe outre le dbproviderfactory, mais cela devrait poser problème pour la connexion car elle n'a pas de valeur. Que faudrait-il mettre comme valeur dans maConnexion?

    J'ai rajouté le using pour avoir les classes comme ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    using System.Data.SqlServerCe;
    ...
     
    SqlCeConnection maConnexion;
    SqlCeCommand maCommande;

  10. #10
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    Il te faut l'instancier, tout simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SqlCeConnection maConnexion = new SqlCeConnection();
    Après, tu peux créer la Command via la connection :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SqlCeCommand maCommande = maConnexion.CreateCommand();
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Merci pour ton aide laedit, j'ai résolu mon problème grâce à toi

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

Discussions similaires

  1. [Archive] Quel est votre langage de programmation préféré ? (2004..2008)
    Par Idelways dans le forum Débats sur le développement - Le Best Of
    Réponses: 403
    Dernier message: 04/02/2009, 00h56
  2. Quel usage faites vous de Python (2004 - 2008) ?
    Par Guigui_ dans le forum Général Python
    Réponses: 130
    Dernier message: 03/12/2008, 23h59
  3. [Visual Studio 2008] Ajax toolkit inexistant ?
    Par zeavan dans le forum Visual Studio
    Réponses: 4
    Dernier message: 22/01/2008, 08h21
  4. Des fichiers inexistants qui existent pourtant !
    Par iubito dans le forum Applications et environnements graphiques
    Réponses: 3
    Dernier message: 07/09/2004, 10h29
  5. [MFC] ouverture en lecture d'un fichier inexistant
    Par bigboomshakala dans le forum MFC
    Réponses: 9
    Dernier message: 07/05/2004, 12h42

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