Problème requête dans listview !

jjg65 Messages postés 28 Date d'inscription mercredi 23 mars 2011 Statut Membre Dernière intervention 16 août 2011 - 4 janv. 2011 à 10:59
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 - 4 janv. 2011 à 11:41
Bonjour,
Je suis confronté à un problème (le programme est arrêté) lorsque je fais 2 requêtes (avec choix conditionnel de l'une d'elle) lors du lancement d'une procédure comprenant une connexion unique à la base de données.
La ligne de code en rouge indique le message suivant :
La référence d'objet n'est pas définie à une instance d'un objet.
Lorsque je supprime la boucle conditionnelle et la deuxième requête le programme tourne normalement.
Comment faire pour effectuer plusieurs requêtes dans une même procédure, quelqu'un aurait-il une idée ?
Merci d'avance.


Private Sub affichage_journee_championnat_ou_play_off_a_encoder()
'//////////////////////////////////////////////////////
FramePresentationEquipesRencontresMultiples.Visible = True
FramePresentationEquipesRencontresMultiples.Location = New System.Drawing.Point(250, 250)

ListBoxFramePresentationEquipesRencontresMultiples.View = View.Details
ListBoxFramePresentationEquipesRencontresMultiples.GridLines = True
ListBoxFramePresentationEquipesRencontresMultiples.FullRowSelect = True
ListBoxFramePresentationEquipesRencontresMultiples.HideSelection = False
ListBoxFramePresentationEquipesRencontresMultiples.MultiSelect = False
' création des entêtes de colonnes
ListBoxFramePresentationEquipesRencontresMultiples.Columns.Add("Stade Competition", 70, HorizontalAlignment.Center)
ListBoxFramePresentationEquipesRencontresMultiples.Columns.Add("Date", 70, HorizontalAlignment.Center)
ListBoxFramePresentationEquipesRencontresMultiples.Columns.Add("Heure", 70, HorizontalAlignment.Center)
ListBoxFramePresentationEquipesRencontresMultiples.Columns.Add("Equipe visitée", 70, HorizontalAlignment.Center)
ListBoxFramePresentationEquipesRencontresMultiples.Columns.Add("Equipe visiteuse", 70, HorizontalAlignment.Center)
ListBoxFramePresentationEquipesRencontresMultiples.Columns.Add("Saison", 20, HorizontalAlignment.Center)



'connexion à la base de données
Dim con As OleDb.OleDbConnection
con = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source= C:\Users\jean-jacques\Desktop\EI\Delegue.mdb;")
If (var_etat_championnat True) And (var_etat_playoff False) Then
Dim cmd As New OleDb.OleDbCommand( _
"SELECT CompetitionsStadeCompetition.Competition, FicRen_CompStadeComp.NumeroCompetitionStadeCompetition, FicRen_CompStadeComp.Date, FicRen_CompStadeComp.Heure, Clubs.NomClub, Clubs_1.NomClub, FicRen_CompStadeComp.Rencontre, FicRen_CompStadeComp.AnneeRencontresChampionnat " & _
"FROM CompetitionsStadeCompetition INNER JOIN (Clubs INNER JOIN (FicRen_CompStadeComp INNER JOIN Clubs AS Clubs_1 ON FicRen_CompStadeComp.NumeroEquipeVisiteuse Clubs_1.NumeroClub) ON Clubs.NumeroClub FicRen_CompStadeComp.NumeroEquipeVisitee) ON CompetitionsStadeCompetition.NumeroCompetition_StadeCompetition = FicRen_CompStadeComp.NumeroCompetitionStadeCompetition " & _
"Where (CompetitionsStadeCompetition.Competition ""Championnat"") and (CompetitionsStadeCompetition.NumeroCompetition_StadeCompetition " & variable_valeur_minimum & ");", con)
Else
Dim cmd As New OleDb.OleDbCommand( _
"SELECT CompetitionsStadeCompetition.Competition, FicRen_CompStadeComp.NumeroCompetitionStadeCompetition, FicRen_CompStadeComp.Date, FicRen_CompStadeComp.Heure, Clubs.NomClub, Clubs_1.NomClub, FicRen_CompStadeComp.Rencontre, FicRen_CompStadeComp.AnneeRencontresChampionnat " & _
"FROM CompetitionsStadeCompetition INNER JOIN (Clubs INNER JOIN (FicRen_CompStadeComp INNER JOIN Clubs AS Clubs_1 ON FicRen_CompStadeComp.NumeroEquipeVisiteuse Clubs_1.NumeroClub) ON Clubs.NumeroClub FicRen_CompStadeComp.NumeroEquipeVisitee) ON CompetitionsStadeCompetition.NumeroCompetition_StadeCompetition = FicRen_CompStadeComp.NumeroCompetitionStadeCompetition " & _
"Where (CompetitionsStadeCompetition.Competition ""PlayOff1"") and (CompetitionsStadeCompetition.NumeroCompetition_StadeCompetition " & variable_valeur_minimum & ");", con)
End If
con.Open()
Dim data_reader As Data.IDataReader = cmd.ExecuteReader
Do While data_reader.Read()
Dim new_item As New _
ListViewItem(data_reader.Item("Competition").ToString)
new_item.SubItems.Add(data_reader.Item("NumeroCompetitionStadeCompetition").ToString)
new_item.SubItems.Add(data_reader.Item("Date").ToString)
new_item.SubItems.Add(data_reader.Item("Heure").ToString)
new_item.SubItems.Add(data_reader.Item("Clubs.NomClub").ToString)
new_item.SubItems.Add(data_reader.Item("Clubs_1.NomClub").ToString)
new_item.SubItems.Add(data_reader.Item("AnneeRencontresChampionnat").ToString)
ListBoxFramePresentationEquipesRencontresMultiples.Items.Add(new_item)

Debug.WriteLine(new_item.Text & " : " & _
new_item.SubItems(0).Text & ", " & _
new_item.SubItems(1).Text & ", " & _
new_item.SubItems(2).Text & ", " & _
new_item.SubItems(3).Text & ", " & _
new_item.SubItems(4).Text & ", " & _
new_item.SubItems(5).Text)
Loop
con.Close()



Dim wid As Integer
For i As Integer = 0 To ListBoxFramePresentationEquipesRencontresMultiples.Columns.Count - 1
ListBoxFramePresentationEquipesRencontresMultiples.Columns(i).Width = -2
wid += ListBoxFramePresentationEquipesRencontresMultiples.Columns(i).Width
Next i

1 réponse

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
4 janv. 2011 à 11:41
Salut,

Essaie de simplifier la lecture du code en mettant les requetes SQL en dehors des parametes de methodes.

cmd est declaré dans les conditions avec un dim.
et donc visible que dedans
or tu l'utilises a l'exterieur donc ton code ne devrait même pas compiler??

Avec les espions regardes les valeurs des variables.

Bon dev
0
Rejoignez-nous