Bonjour,
Je suis désespéré, je n'arrive pas à mettre en oeuvre une procédure avec la fonction DATEAAD, voici dans un premier temps mon code qui fonctionne :
Maintenant que ça fonctionne, j'aimerais ajouter en supplément une autre valeur, dans la colonne (DATE_fin_MSTPE) je dois chercher une date et lui extraire 7 jours et si = date1 alors mon code démarre :
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 string connectionString = null; OleDbConnection cnn; string sql = null; OleDbDataReader reader; string RechMSTPE18 = "MSTPE"; string RechEmail19 = "NON"; string date1 = DateTime.Now.ToShortDateString(); // DAte J connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\resources\BDD.accdb;Persist Security Info=False"; sql = "Select * from Tble_MES_bds_121 WHERE " + "(Date_MES IS NULL)" + // Recherche uniquement si il y a une date vide " AND (Email LIKE ? + '%')" + // Recherche si dans colonne email il y a NON " AND (Statut LIKE ? + '%')"; // Recherche du mot MSTPE // trois conditions sur quatre pour poursuivre mon code cnn = new OleDbConnection(connectionString); cnn.Open(); OleDbCommand cmd = new OleDbCommand(sql, cnn); cmd.Parameters.AddWithValue("@Email", RechEmail19); cmd.Parameters.AddWithValue("@Statut", RechMSTPE18); cmd.Parameters.AddWithValue("@Date_fin_MSTPE", date1); reader = cmd.ExecuteReader(); while (reader.Read()) { // ICI mon code } reader.Close(); cmd.Dispose(); cnn.Close();
Et là, je suis incapable de le faire fonctionner.
A des fins d'entraînement, j'ai écrit ceci :
Du coup j'ai le doute de savoir si je fais bien, ou mettre DATEADD (dans le SELECT, en se servant de SET).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 sql = "Select * FROM Tble_MES_bds_121 WHERE (Date_fin_MSTPE LIKE ? + '%')"; // ce code tout simple fonctionne
Dans la condition WHERE comme je le pense, honnêtement j'ai tout essayé.
Aucun ne fonctionne !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 sql = "SELECT * FROM Tble_MES_bds_121 WHERE (DATEADD(dd, -7, Date_fin_MSTPE) LIKE ? + '%')"; sql = "SELECT * FROM Tble_MES_bds_121 WHERE (DATEADD(d, -7, Date_fin_MSTPE) LIKE ? + '%')"; sql = "SELECT* FROM Tble_MES_bds_121 WHERE (DATEADD(day, -7, Date_fin_MSTPE) LIKE ? + '%')"; sql = "SELECT * FROM Tble_MES_bds_121 WHERE ((DATEADD(dd, 7, CONVERT(Date_fin_MSTPE))) Like ? + '%')"; sql = "SELECT * FROM Tble_MES_bds_121 WHERE (Date_fin_MSTPE=DATEADD(dd,-7,Date_fin_MSTPE) LIKE ? + '%')";
Je viens de tester une autre solution, c'est d'ajouter 7 jours à ma date1 (now) et mon histoire fonctionne comme ceci :
Je contourne mon problème...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 string date1 = DateTime.Now.AddDays(7).ToShortDateString(); // DAte J + 7 jours, mais est-ce la bonne solution....?
Une âme charitable aurait-elle la solution ?
Par avance, merci.
Partager