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

Nightcourrier Messages postés 118 Date d'inscription dimanche 12 octobre 2003 Statut Membre Dernière intervention 28 mars 2008 - 10 déc. 2004 à 20:40
ttaduy Messages postés 5 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 27 mai 2005 - 27 mai 2005 à 00:57
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

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
10 déc. 2004 à 22:00
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
0
Nightcourrier Messages postés 118 Date d'inscription dimanche 12 octobre 2003 Statut Membre Dernière intervention 28 mars 2008
10 déc. 2004 à 23:47
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 :)
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
11 déc. 2004 à 01:00
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
0
ttaduy Messages postés 5 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 27 mai 2005
27 mai 2005 à 00:57
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.
0
Rejoignez-nous