Besoin aide débutant Access Asp.net/Vb.net

Signaler
Messages postés
118
Date d'inscription
dimanche 12 octobre 2003
Statut
Membre
Dernière intervention
28 mars 2008
-
Messages postés
5
Date d'inscription
vendredi 20 décembre 2002
Statut
Membre
Dernière intervention
27 mai 2005
-
bonjour a tous,

Voici mon problème je veux lire une base de données access et asp.net et vb.net

Voici comme je m'y prend cependent la réponse me donne tjrs

intReponse1 = 1 ....

tout ce que je veux faire est de savoir comment d'enregistrement dans la table ReponsesSondange le champs Reponse = 1

Merci de m'aider

' Calculer le nombre de réponse ( dans la base de données )
Private Sub calculerResultatsDuSondage()
Dim maConnexion As OleDbConnection
Dim maCommande As OleDbCommand
Dim dataReader As OleDbDataReader
Dim intReponse1 As Integer

' Connection à la Bd
maConnexion = New OleDbConnection _
("Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Request.PhysicalApplicationPath & "db\Sondage.mdb")

' Requete pour sélectionner toute la table ReponseSsondage Dim ChaineSQL As String "Select count(*) from ReponsesSondage where Reponse 1"

maCommande = New OleDbCommand(ChaineSQL, maConnexion)
maConnexion.Open()
dataReader = maCommande.ExecuteReader

If dataReader.Read() Then
intReponse1 = dataReader.FieldCount
End If

maConnexion.Close()

End Sub

Nightcourrier :)

4 réponses

Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
où est l'erreur ?

ce que tu fais la, c'est que tu regardes le nombre de colonne de ta table, et non le nombre d'enregistrement . pour avoir ce que tu veux, il te faudrais recuperer la valeur de ta cellule

intreponse = ctype(datareader.item(0),integer)

normalement ca marche

Cyril
Messages postés
118
Date d'inscription
dimanche 12 octobre 2003
Statut
Membre
Dernière intervention
28 mars 2008

Merci cela fonctionne a merveille .. merci !

je comprend pas toute les fonction d'un datareader mais bon ...

.item(0) si ya un item(0) il y as tu la possibilité avec item(1) ce que je veux dire ....

Peux ton faire plus qu'une requete dans un ExecuteReader dans le fond etre capable de mettre dans mon DataReader ... Combien de champ Reponse qui sont égale a 1-2-3-4

J'ai une manière de la faire mais pas très optimale mais qui fonctionne. J'aurais plus aussi faire 1 requete et ensuite faire un select =1 =2 =3 =4. Mais je suis convaincu qu'il existe une meilleur methode.

tu va déja aider merci beaucoup ... si t'as quelques secondes pour me donner une maniere d'optimiser merci encore plus ! :)

For intcompteur = 1 To 4

' Requete pour sélectionner toute la table ReponseSsondage Dim ChaineSQL As String "Select count(*) from ReponsesSondage where Reponse " & intCompteur

maCommande = New OleDbCommand(ChaineSQL, maConnexion)
maConnexion.Open()
dataReader(intCompteur) = maCommande.ExecuteReader

If dataReader(intCompteur).Read() Then
intMesReponse(intCompteur - 1) = CType(dataReader(intCompteur).Item(0), Integer)
End If

maConnexion.Close()

Next

Nightcourrier :)
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
Tu pourrais essayer de mieux parler la prochaine fois, car la c'est plus du tout comprehensible !!!

pour ce qui est de l'optimisation possible regarde comme ca :

dim sql as string = _
"SELECT COUNT(*) AS Compteur, Reponse " &_
"FROM dbo.ReponsesSondage " &_
"GROUP BY Reponse"

maCommande = New OleDbCommand(sql , maConnexion)
maConnexion.Open()
monReader = maCommande.ExecuteReader
dim i as integer = 0
Do until not monReader.Read
intreponse(i) = ctype(datareader.item("Compteur"),integer)
i+=1
Loop

j'ai pas vérifié dans un IDE mais ca devrait passer. pour cet exemple
ctype(datareader.item("Compteur"),integer) est la meme chose que ctype(datareader.item(0),integer) et tu peux aussi utiliser ctype(datareader.item("Reponse"),string) pour savoir quelle réponse tu es en train de traiter.

Cyril
Messages postés
5
Date d'inscription
vendredi 20 décembre 2002
Statut
Membre
Dernière intervention
27 mai 2005

thanh taduy

Salut,

Je voudrais savoir s'il y a un moyen de connaitre le nombre de réponse obtenue d'une requête sans passer par "SELECT COUNT(*) ....", à l'instar de recordcount.
Merci pour ton aide.