Vb.net et odbc

Soyez le premier à donner votre avis sur cette source.

Snippet vu 32 041 fois - Téléchargée 38 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

Messages postés
19
Date d'inscription
mercredi 31 mars 2010
Statut
Membre
Dernière intervention
30 avril 2010

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.
Messages postés
956
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
21 août 2014
1
o_O et tu payes ?
Messages postés
2
Date d'inscription
dimanche 7 décembre 2008
Statut
Membre
Dernière intervention
10 mars 2009

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
Messages postés
379
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
20 avril 2011
1
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.
Messages postés
473
Date d'inscription
mercredi 7 août 2002
Statut
Membre
Dernière intervention
10 juin 2015

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.
Afficher les 26 commentaires

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.