System.Data.OleDb

Résolu
Sam_Placi Messages postés 38 Date d'inscription mercredi 29 juin 2022 Statut Membre Dernière intervention 22 mai 2023 - Modifié le 21 mai 2023 à 18:08
Sam_Placi Messages postés 38 Date d'inscription mercredi 29 juin 2022 Statut Membre Dernière intervention 22 mai 2023 - 22 mai 2023 à 12:11

Bonjour,

Je tente le passage d'une application VB.Net sous FrameWork 4.6 au FrameWork Net 7.0.

C'est OK pour tous les codes, sauf ceux qui font appel à la librairie OleDB, comme par exemple :

    Dim LaConexion As New OleDbConnection
    Dim LaCommande As New OleDbCommand

OleDB n'est pas reconnu (malgré un Import System.Data.OleDb) et le code d'erreur BC31424 est produit.

Si quelqu'un sait comment réparer  ...

Merci d'avance,

Sam

9 réponses

NHenry Messages postés 15128 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 9 juin 2024 159
21 mai 2023 à 17:13

Quel est le message d'erreur réel (et pas juste le code) ?


0
Sam_Placi Messages postés 38 Date d'inscription mercredi 29 juin 2022 Statut Membre Dernière intervention 22 mai 2023 1
21 mai 2023 à 17:48

Voici le message donné lors de la compilation

Erreur    BC31424    Le type 'System.Data.OleDb.OleDbConnection' dans l'assembly 'TestDBWinFormNET, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' a été transmis à l'assembly 'System.Data.OleDb, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. Soit une référence à 'System.Data.OleDb, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' est absente du projet soit le type 'System.Data.OleDb.OleDbConnection' est absent de l'assembly 'System.Data.OleDb, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'.  

Mais déjà dans l'éditeur, les codes que j'ai donnés comme exemple sont soulignés avec un message immédiat "Type non déclaré".

Merci,

Sam

0
NHenry Messages postés 15128 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 9 juin 2024 159
21 mai 2023 à 18:49

Dans le configuration de ton projet, tu es en x86, x64 ou AnyCPU ?

0
Sam_Placi Messages postés 38 Date d'inscription mercredi 29 juin 2022 Statut Membre Dernière intervention 22 mai 2023 1
21 mai 2023 à 19:59

Je crois que cette distinction n'intervient qu'au moment de la compilation. Or, l'erreur se manifeste déjà dans l'éditeur en soulignant en rouge ces lignes de codes. C'est comme si l'import n'existait pas.

Mais pour répondre plus exactement à ta question, j'ai compilé en AnyCPU et en x64, et rien n'y change.

0
NHenry Messages postés 15128 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 9 juin 2024 159
21 mai 2023 à 20:19

De mémoire, OleDB requiert d'être en x86.

0
Sam_Placi Messages postés 38 Date d'inscription mercredi 29 juin 2022 Statut Membre Dernière intervention 22 mai 2023 1
21 mai 2023 à 20:53

Non, le programme que je tente de passer en Net 7.0 était compilé en AnyCPU sous le FrameWork 4.6.

Mais pour être sûr, je viens de compiler sous x86 et effectivement, ça ne change rien.

C'est comme s'il disposait d'une DLL "vide" : System.Data.OeDb sans aucun type défini !

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Sam_Placi Messages postés 38 Date d'inscription mercredi 29 juin 2022 Statut Membre Dernière intervention 22 mai 2023 1
22 mai 2023 à 07:55

Bonjour,

Je veux ici être plus précis sur la description du problème rencontré. Pour cela, je crois que les copies d'écran suivantes devraient faire l'affaire.

La première illustration montre l'erreur BC30002 constatée dès l'écriture "normale" du code.

La seconde montre l'erreur BC31424 qui vient quand on écrit le chemin complet dans la déclaration.

Bonne journée,

Sam

0
Whismeril Messages postés 19055 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 10 juin 2024 657
22 mai 2023 à 08:19

Bonjour 

Peux tu poster une capture des références du projet ?


0
Sam_Placi Messages postés 38 Date d'inscription mercredi 29 juin 2022 Statut Membre Dernière intervention 22 mai 2023 1
22 mai 2023 à 09:25

Bonjour Whismeril,

La librairie est bien référencée, il n'y a d'ailleurs aucun "warning" dans l'éditeur au niveau de l'Imports.

Mais je viens de comprendre le problème (ou plutôt un intervenant qui planchait sur le même problème sur un autre forum, vient de poster la solution).

Il faut que le NuGet du System.Data.OleDb soit installé. Il faut donc lancer l'administrateur de NuGet et charger la librairie comme illustré ci-dessous.

Merci pour ton intervention.

0
Whismeril Messages postés 19055 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 10 juin 2024 657
22 mai 2023 à 11:00

Oui, c'est pour ça que je te demandais la capture.

Les framework 6 et 7 sont des "coques vides", il faut tout installer quand on en a besoin.....

1
dysorthographie Messages postés 95 Date d'inscription jeudi 27 janvier 2022 Statut Membre Dernière intervention 10 juin 2024 5
Modifié le 22 mai 2023 à 10:56

Bonjour,

Sur l'image du poste 7 la où il y a OleDbConnection souligné en rouge on voit en commantaire afficher les corrections éventuelles click sur le lien et tu devrais trouver l'option installer.

J'ai installé 2022 hier pour tester et j'ai du faire cette manipulation.

Ensuite,dans le cadre du débugage dynamique de l'application, il est possible qu'il faille choisir entre x86 ou x64 en fonction de la version du driver ODBC.

0
Sam_Placi Messages postés 38 Date d'inscription mercredi 29 juin 2022 Statut Membre Dernière intervention 22 mai 2023 1
Modifié le 22 mai 2023 à 12:12

Bonjour Dysorthographie,

Non, les "corrections éventuelles" ne me proposaient pas d'installer. C'est peut-être normal vu que les frameworks sont déjà installés mais qu'ils sont, comme le signale ci-dessus Wismeril, des coques vides. En tous cas, ce qui était installé sur mon VS2022 ne contenait pas l'OleDb.

Le problème semble fréquent : https://stackoverflow.com/questions/...ized-in-vb-net

Merci pour ton intervention,

Sam

0
Rejoignez-nous