Vb.net et odbc

1/5 (26 avis)

Snippet vu 33 759 fois - Téléchargée 40 fois

Contenu du snippet

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 / Exemple :


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.

A voir également

Ajouter un commentaire Commentaires
jooosaaa Messages postés 19 Date d'inscription mercredi 31 mars 2010 Statut Membre Dernière intervention 30 avril 2010
5 avril 2010 à 12:23
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.
cs_eldim Messages postés 956 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 21 août 2014 1
10 mars 2009 à 16:09
o_O et tu payes ?
Nawmyou Messages postés 2 Date d'inscription dimanche 7 décembre 2008 Statut Membre Dernière intervention 10 mars 2009
10 mars 2009 à 15:40
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
scortex84 Messages postés 379 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 20 avril 2011 1
3 déc. 2006 à 16:59
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.
cs_Warny Messages postés 473 Date d'inscription mercredi 7 août 2002 Statut Membre Dernière intervention 10 juin 2015
3 déc. 2006 à 07:29
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.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.