Bonjour à tous.
je me permet de vous envoyer un post car j'ai un souci.
Je bosse avec Visual Studio 2010. Je débute.
J'ai un gridview lié à une sqlDatasource. Lors du chargement de ma page, je récupère une date dans ma BDD Oracle qui me permet de faire ma sélection pour le Gridview (la récupération se passe bien).
Mon problème est quand le code arrive sur GridView.DataBind().
Lorsque je lance ma page, j'ai une erreur "ORA-01843:not a valid month."
Mon problème vient à priori du fait que mon format de date n'est pas correct mais je n'arrive pas à le résoudre.
Je vous met le code de ma page ASPX avec la définition du gridview:
et le code de mon page_load
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 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="true" DataSourceID="SqlDataSource1"> <Columns> <asp:BoundField DataField="ID_EXECUTER" HeaderText="ID_EXECUTER" ReadOnly="True" SortExpression="ID_EXECUTER" /> <asp:BoundField DataField="DECALAGE_EXECUTER" HeaderText="DECALAGE_EXECUTER" ReadOnly="True" SortExpression="DECALAGE_EXECUTER" /> <asp:BoundField DataField="LIB_TYPE_OP" HeaderText="LIB_TYPE_OP" ReadOnly="True" SortExpression="LIB_TYPE_OP" /> <asp:BoundField DataField="RANG_LIGNE_FT" HeaderText="RANG_LIGNE_FT" ReadOnly="True" SortExpression="RANG_LIGNE_FT" /> <asp:BoundField DataField="LIB_STUCCO" HeaderText="LIB_STUCCO" ReadOnly="True" SortExpression="LIB_STUCCO" /> <asp:BoundField DataField="LIB_PROG" HeaderText="LIB_PROG" ReadOnly="True" SortExpression="LIB_PROG" /> <asp:BoundField DataField="LIB_TYPE_BAIN" HeaderText="LIB_TYPE_BAIN" ReadOnly="True" SortExpression="LIB_TYPE_BAIN" /> </Columns> </asp:GridView> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:PCCConnectionStringBDD %>" ProviderName="<%$ ConnectionStrings:PCCConnectionStringBDD.ProviderName %>" SelectCommand="SELECT * FROM ADMIN.EXECUTER INNER JOIN ADMIN.PLATEAU ON ADMIN.EXECUTER.ID_PLATEAU_EXECUTER = ADMIN.PLATEAU.ID_PLATEAU INNER JOIN ADMIN.LIGNE_FT ON ADMIN.EXECUTER.ID_LIGNE_FT_EXECUTER = ADMIN.LIGNE_FT.ID_LIGNE_FT INNER JOIN ADMIN.PROG ON ADMIN.EXECUTER.ID_PROG_EXECUTER = ADMIN.PROG.ID_PROG INNER JOIN ADMIN.STUCCO ON ADMIN.PROG.ID_STUCCO_PROG = ADMIN.STUCCO.ID_STUCCO INNER JOIN ADMIN.TYPE_BAIN ON ADMIN.LIGNE_FT.ID_TYPE_BAIN_LIGNE_FT = ADMIN.TYPE_BAIN.ID_TYPE_BAIN INNER JOIN ADMIN.TYPE_OP ON ADMIN.LIGNE_FT.ID_TYPE_OP_LIGNE_FT = ADMIN.TYPE_OP.ID_TYPE_OP WHERE (ADMIN.EXECUTER.ID_PLATEAU_EXECUTER = :MonId) AND (ADMIN.EXECUTER.DATE_EXECUTER >= :MaDate) ORDER BY ADMIN.LIGNE_FT.RANG_LIGNE_FT"> </asp:SqlDataSource>
Je souhaite que ma valeur MaNouvelleDate soit le second paramètre.
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 protected void Page_Load(object sender, EventArgs e) { ORDFAB newOrdFab = new ORDFAB(); //Récupération des variables de l'URL tbIDRef.Text = Request.QueryString[0]; tbType.Text = Request.QueryString[1]; //on va récupérer les données à partir du plateau ou de l'OF switch (tbType.Text) { case "Plateau": //on cherche la dates entrée de ce plateau dans ORDFAB string DateEntree; DateTime MaNouvelleDate; newOrdFab = OrdFabMetier.ORDFABOFPlateau(Int16.Parse(tbIDRef.Text)); DateEntree = newOrdFab.ENTREE_ORDFAB.ToString(); IFormatProvider culture = new System.Globalization.CultureInfo("fr-FR", true); MaNouvelleDate = DateTime.Parse(DateEntree, culture, System.Globalization.DateTimeStyles.AssumeLocal); //on recupère les lignes EXECUTER à partir de la date d'entrée du plateau et de l'ID plateau SqlDataSource1.SelectParameters.Add("MonId", tbIDRef.Text); SqlDataSource1.SelectParameters.Add("MaDate",MaNouvelleDate.ToShortDateString()); GridView1.DataBind(); break; case "OF": newOrdFab = OrdFabMetier.ORDFABSelect(tbIDRef.Text); //on recupère les lignes EXECUTER à partir de la date d'entrée et de sortie du plateau et de l'ID plateau break; default: break; } }
Comment puis je faire pour convertir ma datetime (dd/MM/yyyy hh:mm:ss) en "dMM/dd/yyyy hh:mm:ss" puor ne plus avoir mon problème?
Je ne trouve pas de réponse sur le net.
Je ne sais pas si c'est très clair. Merci pour votre aide.
Partager