ADO.NET Base Access

gwiwi Messages postés 127 Date d'inscription lundi 8 juillet 2002 Statut Membre Dernière intervention 4 janvier 2007 - 11 avril 2003 à 20:50
TheEwook Messages postés 155 Date d'inscription samedi 3 juillet 2004 Statut Membre Dernière intervention 30 mai 2005 - 27 sept. 2004 à 22:07
Bnjour,

Cela fait 2 jours que j'essaye sous Vb.Net de faire une connexion et d'essayer de lancer une requete sur une base mais je n'arrive pas a me connecter a ma base. J'ai beau essayer de regarder support.microsoft.com, MSDN ou meme ce site, mais rien n'y fait, aucun exemple concret de connexion a une base Access.

Est ce que quelqu'un pourrait juste me donner la methode de connexion a la base en ADO.NET et lancement d'une requete ...... ca serait super symphatique .......merci d'avance.

3 réponses

DotNetMaster Messages postés 6 Date d'inscription vendredi 7 mars 2003 Statut Membre Dernière intervention 13 mai 2003
11 avril 2003 à 22:50
Salut à toi ô .Net programmeur, visiblement la connexion à ta base access te pose problème...

Voici quelques éléments de réponse:

1. Pour connecter une base access il faut utiliser un fournisseur de données OLEDB par exemple. Donc pour que ce soir plus comfortable, il faut ajouter une instruction "import" au début du fichier genre:

import System.Data.OleDB

avant la déclaration de la classe.

Bon voilà déjà ça. Ensuite, si tu veux te connecter, ben... il te faut une connexion, donc:

Dim objConnexion As New OledbConnection("chaîne de connexion")

Encore une autre info utile la chaîne de connexion de base doit avoir le nom du fournisseur propre à access qui est en l'occurence Jet (voir quelle version du provider tu as, en principe Access 2000 c'est Jet 4.0) et tu dois ensuite mettre le chemin vers ta base de données:

"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Sauvegarde\Developpement\base.mdb"

Bon en ce qui concerne la requête, tu peux le faire de plusieurs manières: si tu penses recevoir une liste de données volumineuse,, il vaut mieux utiliser un DataSet. Pour quelques enregistrements vaut mieux utiliser un DataReader.

1. Le Dataset

Créer un OleDBDataAdatapter:
Dim objDA as new OleDBDataAdapter(SelectCommand,Connexion)

Donc concrètement:

Dim objDA as new OleDBDataAdapter("SELECT * FROM UTILISATEUR;", "Data Source=C:\Sauvegarde\Developpement\base.mdb";

Instancier un objet DataSet:

Dim objDS as New DataSet()

Obtenir les données:

objDA.Fill(objDS)

(Avec la dataadapter l'ouverture/fermeture de la connexion est géré tout seul)

Et tu as toutes tes lignes dans le DataSet

Pour le parcourir:

objDS.Tables(0).Rows(i).Item(j)

où j correspond à une colonne de la table

ou

objDS.Tables("UTILISATEUR").Rows(i).Item(j)

2. Avec le DataReader (une petite fonction de mon cru)

Private Function CountUserTable() As Integer
Dim strSql As String = "SELECT COUNT(*) FROM UTILISATEUR"

Dim objCmd As OleDbCommand
Dim objReader As OleDbDataReader

objCmd = CreateCommand(strSql)
objCmd.Connection.Open()
objReader = objCmd.ExecuteReader(CommandBehavior.CloseConnection)

' Toujours appeler cette méthode avant d'utiliser le reader
objReader.Read()
Return Convert.ToInt32(objReader.Item(0))

End Function

Et voilà! Bon codage!

DotNetMaster--->
0
dionysos6868 Messages postés 310 Date d'inscription jeudi 4 septembre 2003 Statut Membre Dernière intervention 9 juin 2005 1
10 févr. 2004 à 19:48
Perso je te remerci pour cette super explication
merci beaucoup a toi

Dionysos

www.hackeinfo.net
0
TheEwook Messages postés 155 Date d'inscription samedi 3 juillet 2004 Statut Membre Dernière intervention 30 mai 2005
27 sept. 2004 à 22:07
CreateCommand n'est pas déclaré

@++

________________
TheEwook
http://www.codes-studio.com
0
Rejoignez-nous