begin process at 2012 02 10 20:39:03
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

VB.NET

 > VB.NET ET ODBC

VB.NET ET ODBC


 Information sur la source

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
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 :26 541

Auteur : scortex84

Ecrire un message privé
Site perso
Commentaire sur cette source (26)
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.


 Sources du même auteur

Source avec Zip Source .NET (Dotnet) SAUVEGARDE ET RESTAURATION DE BASES MYSQL
Source .NET (Dotnet) LISTING DES PROCESSUS EN VB.NET

 Sources de la même categorie

Source .NET (Dotnet) MODIFICATION DATE DE WINDOWS EN VB.NET ET VBA par us_30
Source avec Zip Source avec une capture Source .NET (Dotnet) ENVOI DE MAIL AVEC PIÈCE JOINTE par EhJoe
Source .NET (Dotnet) AMUSONS NOUS AVEC UN LABEL ^^ par Adn56
Source avec Zip Source avec une capture Source .NET (Dotnet) UN NAVIGATEUR INTERNET EN VB.NET par azrti
Source avec Zip Source .NET (Dotnet) CONVERSION DE DEVISE MONAITAIRE VIA UN SERVICE WEB par bigmonkey7

Commentaires et avis

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.

Commentaire de Funny le 30/07/2003 14:17:00

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

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.

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.

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é.

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)

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.

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.

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

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

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.

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.

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!!!) ;-)
@+

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.

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

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.

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 ?

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.

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...

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.

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 !!!!!!!!!!!!!!

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.

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.

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

Commentaire de eldim le 10/03/2009 16:09:15

o_O et tu payes ?

Commentaire de jooosaaa le 05/04/2010 12:23:12

J'ai des message d'erreur:
Avertissement 1 L'espace de noms ou le type spécifié dans les Imports 'MySql.Data.MySqlClien' ne contient aucun membre public ou est introuvable. Vérifiez que l'espace de noms ou le type est défini et qu'il contient au moins un membre public. Vérifiez que le nom de l'élément importé n'utilise pas d'autres alias.
Erreur 2 Type 'MySqlConnection' non défini.
Erreur 3 Type 'MySqlCommand' non défini.
Erreur 4 Type 'MySqlDataReader' non défini.
qui peut m'aider.

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,763 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales