Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

VB.NET ET ODBC


Information sur la source

Catégorie :VB.NET Source .NET ( DotNet ) Niveau : Débutant Date de création : 30/07/2003 Date de mise à jour : 30/07/2003 11:00:59 Vu : 20 360

Note :
4,5 / 10 - par 2 personnes
4,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (25)
Ajouter un commentaire et/ou une note

Description

Comme beaucoup d'entre vous je passe doucement à VB .NET et également comme beaucoup d'entre vous je galere car beaucoup de choses ont changé :-(.
Cette source est destinée à vous montrer comment accéder via ODBC à une base de donnée autre que SQL-SERVER et ACCESS. Il n'y a aucune prétention, je ne suis pas un crack du VB.

En tout premier lieu, il faut savoir que la version 1.0 du framework ne permet d'acceder qu'a des bases SQL-SERVER et ACCESS (Oracle aussi ?) via ODBC et qu'il faut télécharger la version 1.1 sur http://msdn.microsoft.com/downloads

Une fois téléchargé et installé on se plonge dans le code. Attention ici je me connecte à une base MYSQL sur un serveur linux.
 

Source

  • Public Sub ConnectToOdbc()
  • 'Déclaration de la connexion :
  • 'j'ai pas encore trouvé la soluce pour eviter de taper "System.Data.Odbc." à chaque fois, pourtant la réference est bien ajouté au projet, pardon, à la solution ;-)
  • Dim myConnection As New System.Data.Odbc.OdbcConnection("DRIVER={MySQL ODBC 3.51 Driver};SERVER=serveur_linux;DATABASE=nom_base;USER=seb;PASSWORD=;OPTION=3")
  • 'la chaine de connexion provient du site mysql.com
  • 'l'objet commande qui va chercher les données. VB se prend pour ASP...
  • Dim myCommand As New System.Data.Odbc.OdbcCommand("Select * from famille", myConnection)
  • 'et on y va :
  • Try
  • 'ouverture de la connexion
  • myCommand.Connection.Open()
  • MessageBox.Show("Connexion ok!")
  • 'on déclare un recordse....pardon un "datareader" pour stocker les données
  • Dim myReader As System.Data.Odbc.OdbcDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection)
  • 'Et on le parcours. Il va me manquer le "movenext"
  • While myReader.Read()
  • 'je mets le résultat dans un listview1 juste pour stocker rapidement
  • ListView1.Items.Add(myReader.GetString(1))
  • End While
  • 'la gestion d'erreur qui me fait penser au java...
  • Catch ex As Exception
  • MessageBox.Show(ex.Message)
  • Finally
  • 'et on ferme
  • myReader.Close()
  • myConnection.Close()
  • End Try
  • End Sub
 Public Sub ConnectToOdbc()
'Déclaration de la connexion : 
'j'ai pas encore trouvé la soluce pour eviter de taper "System.Data.Odbc." à chaque fois, pourtant la réference est bien ajouté au projet, pardon, à la solution ;-)
        Dim myConnection As New System.Data.Odbc.OdbcConnection("DRIVER={MySQL ODBC 3.51 Driver};SERVER=serveur_linux;DATABASE=nom_base;USER=seb;PASSWORD=;OPTION=3")
'la chaine de connexion provient du site mysql.com

'l'objet commande qui va chercher les données. VB se prend pour ASP...
        Dim myCommand As New System.Data.Odbc.OdbcCommand("Select * from famille", myConnection)
'et on y va : 
        Try
'ouverture de la connexion
            myCommand.Connection.Open()
            MessageBox.Show("Connexion ok!")
'on déclare un recordse....pardon un "datareader" pour stocker les données
            Dim myReader As System.Data.Odbc.OdbcDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection)
'Et on le parcours. Il va me manquer le "movenext"
            While myReader.Read()
'je mets le résultat dans un listview1 juste pour stocker rapidement
                ListView1.Items.Add(myReader.GetString(1))
            End While

'la gestion d'erreur qui me fait penser au java...
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        Finally
'et on ferme
            myReader.Close()
            myConnection.Close()
        End Try

    End Sub

Conclusion

Voilà un chtit code pour sortir des données. Maintenant plus qu'a inserer, supprimer, mettre à jour... En avant la galere !!!!
Bonne prog à tous.
 

Commentaires et avis

signaler à un administrateur
Commentaire de gwiwi le 30/07/2003 11:11:20

En effet, la gestion des INSERT et UPDATE m'interresse un peu plus, facon de voir comment tu fais car il me semble qu'il y a bcp de facons de faire.

signaler à un administrateur
Commentaire de Funny le 30/07/2003 14:17:00

bonne adaptation de code!
Le passage au VB.NET semble bien commencer

signaler à un administrateur
Commentaire de Warny le 30/07/2003 14:27:42

La nouvelle version d'ADO.NET est carrement limite par rapport à ce qu'était capable de faire ADO. On ne peut plus lire la structure des bases ni mettre à jour les curseurs ouverts par recordsets.
Pour executer une instruction il faut faire :

myCommand.CommandText = "INSERT..."
myCommand.ExecuteNonQuery() 'qui éventuellement renvoie le nombre de lignes affectées

Il existe aussi le dataset qui est un poids lourd pour tuer des mouches.

signaler à un administrateur
Commentaire de scortex84 le 01/08/2003 10:22:20

Je suis d'accord avec Warny pour le insert/update.
En fait pour ceux qui pratiquent l'ASP "classique" (pour le .NET je l'ai pas essayé), VB.NET y ressemble beaucoup quant à l'accés aux données, surtout par l'utilisation d'objet "Command" pour recuperer, inserer et modifier des données.

signaler à un administrateur
Commentaire de MrTidus le 24/10/2003 15:12:13

Je ne comprend pas sa ne fonctionne pas chez moi.
J'ai des message d'erreur :
Type 'System.Data.Odbc.OdbcConnection' non défini.
Type 'System.Data.Odbc.OdbcCommand' non défini.
Type 'System.Data.Odbc.OdbcDataReader' non défini.
Le nom myReader n'est pas déclaré.

signaler à un administrateur
Commentaire de Warny le 24/10/2003 15:19:06

Essaye avec
System.Data.OleDB.OleDBConnection
System.Data.OleDB.OleDBCommand
System.Data.OleDB.OleDBDataReader
C'est une autre forme de connexion, plus rapide que l'odbc, qui permet aussi de se connecter à une source ODBC (que du bonheur quoi)

signaler à un administrateur
Commentaire de Warny le 24/10/2003 15:21:39

J'ai trouvé une utilisation au dataset : générer des xml rapidement.
Pour ensuite le soumettre à un moteur xsl-t.
Pur gérer les données, c'est trop complexe, on traine un code de fou furieux.

signaler à un administrateur
Commentaire de lumesh le 17/12/2003 07:14:50

Si ca interresse:

ODBC 3.51 + Lib MySQL pour faire tourner des base MySQL via .Net

http://www.mysql.com/products/myodbc/manual.html#ODBC.NET(VB

Il y a aussi l'article de F___ mais trop pauvre en exemple.

signaler à un administrateur
Commentaire de mastercatz le 13/01/2004 15:29:06

pour eviter d'avoir a ecrire System.Data.Odbc devant chaque methode place en haut de ton code : Imports System.Data.Odbc

signaler à un administrateur
Commentaire de GHIL le 18/02/2004 12:26:40

C'est tres bien,
mais j'ai une erreur (avec webforms) au moment de l'ouverture de la connexion ODBCconnection.open() :ERROR [IM002] [Microsoft][Gestionnaire de pilotes ODBC] Source de données introuvable et nom de pilote non spécifié.
merci de me renseigner

signaler à un administrateur
Commentaire de malka001 le 18/02/2004 14:59:31

pour ceux, qui comme moi utilisent visual studio.net 2002, voici le lien ou on trouve les pilotes odbc natifs pour le framework 1.0 :
http://www.microsoft.com/downloads/details.aspx?displaylang=fr&FamilyID=6CCD8427-1017-4F33-A062-D165078E32B1

la classe est microsoft.data.odbc

Et il faut l'ajouter à la boite à outils de vs.net en allant chercher la dll dans le répertoire d'install de ces nouveaux pilotes.

signaler à un administrateur
Commentaire de cybergob le 30/07/2004 05:58:40

Merci pour la source !

Moi qui cherchais comment me connecter a un serveur MySQL avec ODBC.

signaler à un administrateur
Commentaire de koubihack le 26/06/2005 22:09:50

merci pour la source,
ça me servira sûrement.

En tout cas, plus j'apprend le .net plus il y a de zone d'ombre et de trucs qui marchent un peu "au petit bonneur la chance", c'est mon impression. Enfin je vais approfondir, je vais essayer de mettre les sources (documentées aussi bien que toi!!!) ;-)
@+

signaler à un administrateur
Commentaire de scortex84 le 27/06/2005 08:39:00

Bonjour à vous tous.

Petite mise à jour de cette source qui à jauni depuis le temps !

Mysql à sorti un connecteur s'intégrant à VB.NET. Avec cette DLL, plus besoin de passer par un lien ODBC pour acceder à Mysql. Vous ajoutez la référence à la dll mysql, et ensuite au lieu d'utiliser des objets "odbc", vous utiliser des objets "mysql".

Les avantages : plus rapide ! Largement même !!! En plus, vous pouvez executer des requetes ayant des paramètres pour ajouter par exemple une image à votre base de donnée (avec le pilote ODBC cela ne voulait pas marcher).

Voilà, ce connecteur .NET de mysql est dispo à : http://www.mysql.com/products/connector/net/

Et cerise sur le gateau : Mysql annonce un connecteur pour pocketPC !!!!

Seb.

signaler à un administrateur
Commentaire de ankou22 le 14/11/2005 18:48:18

Bonjour à tous,

[ scortex84 ] , merci pour te source, elle me sera utile. Mais est il possible de connaitre la structure de la base (nom des Tables, nom des Champs, Type des Champs) via une Connexion ODBC.

Par l'utilisation de SQL DMO, j'arrive à obtenir la structure d'une base SQL SERVER, est il possible de faire pareil avec une connexion odbc ?

si ou comment ?

Merci à tous

signaler à un administrateur
Commentaire de scortex84 le 14/11/2005 20:47:27

Hello,
Avec Mysql & ODBC, tu peux utiliser des requetes du style : "Show create ma_table" qui permet d'obtenir le shéma de ta table, "Show tables from ma_database" (je crois, je te dis ça de tete, mais ça doit pas etre loin de la vérité) ou encore "show databases" qui liste des les bases de données du serveur.

Concernant le connecteur ODBC, si tu programmes avec .NET, il vaut mieux que tu utilises le connecteur pour .NET que Mysql a sorti (plus rapide, plus stable, etc, etc). J'ai mis en ligne une source qui utilise ce connecteur : http://www.vbfrance.com/code.aspx?ID=34543

Bon courage,
Seb.

signaler à un administrateur
Commentaire de eldim le 21/02/2006 16:46:30

Bonjour à tous,

je viens d'essyer vos différentes propositions et j'ai un gros souci avec toutes...

Lorsque je précise un nom d'utilisateur pour la connexion, il me rajoute par défaut l'adresse du PC au même si je lui précise le domaine..

Quelqu'un peut m'aider ?

signaler à un administrateur
Commentaire de openccm le 23/02/2006 15:42:42

Bonjour,

Quelqu'un peut m'aider pour se connecter à une base de données MySQL/ACCESS sur le serveur en C# ?

Je vous remercie d'avance.

signaler à un administrateur
Commentaire de eldim le 23/02/2006 15:54:27

J'ai trouvé mon erreur désolé du dérangement...

pour le C# y a un autre forum...

signaler à un administrateur
Commentaire de fwakrim le 03/04/2006 19:31:48

Salut,

J'ai pu résoudre le pb grâce au fichier conn.asp suivant :

Dim conn
Dim strconn
Set conn = Server.createObject("ADODB.connection")
strconn = "driver={MySQL ODBC 3.51 Driver};DSN=Mondsn;uid=Monuser;pwd=;option=16386"
conn.open strconn

ciao.

signaler à un administrateur
Commentaire de nousdeuxoise le 01/12/2006 18:38:46

bonjour et ....... merci beaucoup pour ta source !!!
j'ai une question pour ado.net
en cas de multi-utilisateur sur une base, vu que l'on travaille en mode deconnecté, si mon voisin suprimme l'enregistrement sur lequel je suis pour le modifier, au moment de la mise à jour cela va planter non ? je ne trouve pas ca tout a fait logique non ???
Repondez moi s'il vous plait car je rame à mort !!!!!!!!!
                                   MERCI !!!!!!!!!!!!!!

signaler à un administrateur
Commentaire de Warny le 03/12/2006 07:29:38

Salut,
Ca va effectivement se gauffrer. Mais tu peux gérer les erreurs grace à une directive try/catch.
Après, c'est à ton programme de gérer les problème de conflt de mise à jour.

signaler à un administrateur
Commentaire de scortex84 le 03/12/2006 16:59:28

Salut ! Oulà elle date cette source :-) Maintenant, je vous conseille d'utiliser le connecteur .NET fournit par Mysql sur leur site. C'est bien mieux que ODBC : plus rapide, erreurs mysql, etc,etc, etc.

Pour ton soucis, le "try/catch" c'est très bien, mais le mieux, c'est la gestion des "accès concurentiels aux données" : en résumé ton dataAdapter est capable de voir si les données ont changés depuis ton select et de t'en avertir. Pour plus d'infos : google (ou un tuto dès que j'ai 5min).
Ou alors du "lock" tes enregistrements avec un flag que tu positionnes à 1 ou 0 selon le cas.

Seb.

signaler à un administrateur
Commentaire de Nawmyou le 10/03/2009 15:40:34

bonjour tt le monde je ss debutant en programation avec vb.net et je serai vraiment tré reonaissant sil ya parmis vou qq qui me donne un cour concernant vb.net et odbc.;merci

signaler à un administrateur
Commentaire de eldim le 10/03/2009 16:09:15

o_O et tu payes ?

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 1,966 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.