Bonjour,

Je me heurte à un problème de génération d'un GridView.
En effet, je dispose d'un gridView qui est lié à une base de donnée et donc à une requête. Cette requête a besoin de 3 paramètres pour renvoyer le résultat escompté.
Seulement, ce gridview est placé dans un Contrôle utilisateur et je ne sais pas comment faire en sorte qu'il me renvoie le résultat car je n'arrive pas à lui donner les valeurs des paramètres. Le contrôle utilisateur est bien affiché mais je n'ai pas le gridview étant donné que pour lui, cette requête ne renvoie pas de données (la requête fonctionne : vérifié)
Donc voici le code design de mon Contrôle utilisateur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<%@ Control Language="VB" 
            AutoEventWireup="false" 
            ClassName="CtrlStat" 
            CodeFile="CtrlStat.ascx.vb" 
            Inherits="CtrlStat" %>
<asp:Table ID="tblInfo" runat="server">
    <asp:TableRow>
        <asp:TableCell Width="80">Utilisateur : </asp:TableCell>
        <asp:TableCell ID="CellUtilisateur" Width="250"></asp:TableCell>
        <asp:TableCell Width="165">Nombre de demandes : </asp:TableCell>
        <asp:TableCell ID="CellNbDemandes"  Width="250"></asp:TableCell>
    </asp:TableRow>
</asp:Table>
<asp:GridView ID="GVListeDemandes" runat="server" AutoGenerateColumns="False" 
    DataSourceID="ADSListeDemandes" Width="753px">
    <Columns>
        <asp:BoundField DataField="DEMId" HeaderText="Numéro demande" 
            SortExpression="DEMId" />
        <asp:BoundField DataField="DEMTitre" HeaderText="Titre demande" 
            SortExpression="DEMTitre" />
        <asp:BoundField DataField="TYPINTERLibelle" HeaderText="Type intervention" 
            SortExpression="TYPINTERLibelle" />
        <asp:BoundField DataField="DEMDate" DataFormatString="{0:dd/MM/yyyy}" 
            HeaderText="Date demande" SortExpression="DEMDate" />
    </Columns>
</asp:GridView>
<asp:AccessDataSource ID="ADSListeDemandes" runat="server" 
    DataFile="~/App_Data/IncidentENSAM.mdb" 
    SelectCommand="SELECT DEMANDE.DEMId, DEMANDE.DEMTitre, TYPEINTERVENTION.TYPINTERLibelle, DEMANDE.DEMDate FROM (DEMANDE INNER JOIN TYPEINTERVENTION ON DEMANDE.DEMTypeIntervention = TYPEINTERVENTION.TYPINTERId) WHERE DEMDate BETWEEN FORMAT(#?#,'mm/dd/yyyy') AND FORMAT(#?#,'mm/dd/yyyy') AND DEMUtilisateur=?">
    <SelectParameters>
        <asp:Parameter Name="?" DefaultValue="<% Response.Write(s_DateDebut) %>"/>
        <asp:Parameter Name="?" DefaultValue="<% Response.Write(s_DateFin) %>" />
        <asp:Parameter Name="?" DefaultValue="<% Response.Write(s_Utilisateur) %>" />
    </SelectParameters>
</asp:AccessDataSource>
Le code Behind :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
Imports System.DirectoryServices
Imports System.Web.Configuration
Imports System.Data.OleDb
Partial Class CtrlStat
    Inherits System.Web.UI.UserControl
 
    Protected s_Utilisateur, s_DateDebut, s_DateFin As String
    Private o_SI As SI
 
    Public Sub New()
 
    End Sub
 
    Protected Sub Initialisation(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
 
        If o_SI.Connexion.State = Data.ConnectionState.Closed Then o_SI.Connexion.Open()
 
        Dim o_Exec As OleDbCommand
        Dim s_requete As String
        s_requete = "SELECT COUNT(*) "
        s_requete = s_requete & "FROM (DEMANDE INNER JOIN TYPEINTERVENTION ON DEMANDE.DEMTypeIntervention = TYPEINTERVENTION.TYPINTERId) "
        s_requete = s_requete & "WHERE DEMDate BETWEEN FORMAT(#" & s_DateDebut & "#,""mm/dd/yyyy"") AND FORMAT(#" & s_DateFin & "#,""mm/dd/yyyy"") "
        s_requete = s_requete & "AND (DEMANDE.DEMUtilisateur = '" & s_Utilisateur & "')"
 
        o_Exec = New OleDbCommand(s_requete, o_SI.Connexion)
        Dim o_AD As New ActiveDirectory(WebConfigurationManager.AppSettings("ActiveDirectoryServeur"), _
                                        WebConfigurationManager.AppSettings("ActiveDirectoryLogin"), _
                                        WebConfigurationManager.AppSettings("ActiveDirectoryPassword"))
 
        CellUtilisateur.Text = String.Concat(o_AD.NomComplet(s_Utilisateur), " (", s_Utilisateur, ")")
        CellNbDemandes.Text = o_Exec.ExecuteScalar
    End Sub
 
    Public Property Utilisateur() As String
        Get
            Return s_Utilisateur
        End Get
        Set(ByVal value As String)
            s_Utilisateur = value
        End Set
    End Property
 
    Public Property DateDebut() As String
        Get
            Return s_DateDebut
        End Get
        Set(ByVal value As String)
            s_DateDebut = value
        End Set
    End Property
 
    Public Property DateFin() As String
        Get
            Return s_DateFin
        End Get
        Set(ByVal value As String)
            s_DateFin = value
        End Set
    End Property
 
    Public Property SI() As SI
        Get
            Return o_SI
        End Get
        Set(ByVal value As SI)
            o_SI = value
        End Set
    End Property
End Class
Et comment je l'utilise :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
s_Requete = "SELECT COUNT(*) FROM (SELECT DISTINCT DEMUtilisateur FROM DEMANDE WHERE DEMDate BETWEEN FORMAT(#" & s_DateDeb & "#,""mm/dd/yyyy"") AND FORMAT(#" & s_DateFin & "#,""mm/dd/yyyy"") GROUP BY DEMUtilisateur)"
                    o_Exec.CommandText = s_Requete
                    i_NbUtilisateurs = CInt(o_Exec.ExecuteScalar)
 
                    s_Requete = "SELECT DISTINCT DEMUtilisateur FROM DEMANDE WHERE DEMDate BETWEEN FORMAT(#" & s_DateDeb & "#,""mm/dd/yyyy"") AND FORMAT(#" & s_DateFin & "#,""mm/dd/yyyy"")"
                    o_Exec.CommandText = s_Requete
                    Dim RDRUtilisateur As OleDbDataReader
                    RDRUtilisateur = o_Exec.ExecuteReader
 
                    ' On remplit les labels
                    lblNombreDemandes.Text = i_NbDemandes
                    lblNombreUtilisateur.Text = i_NbUtilisateurs
                    lblDateDebut.Text = s_DateDeb
                    lblDateFin.Text = s_DateFin
 
                    ' On parcours les utilisateurs
                    While RDRUtilisateur.Read
 
                        Dim o_Stat As New CtrlStat
                        o_Stat = o_Stat.LoadControl("~/Controls/CtrlStat.ascx")
                        o_Stat.SI = o_SI
                        o_Stat.Utilisateur = RDRUtilisateur.GetString(0)
                        o_Stat.DateDebut = s_DateDeb
                        o_Stat.DateFin = s_DateFin
 
                        PHStats.Controls.Add(o_Stat)
                    End While
Cela fait plusieurs fois que je me heurte à ce type de problème et je n'ai, pour le moment, toujours pas trouvé de solution malgré le fait d'avoir cherché pendant plusieurs heures.

Merci d'avance.