Salut bloodi_eye, merci de ta réponse et voici une partie de mon code:
_______________________________________________________
using System;
using System.Collections.Generic;
using System.Text;
using System.Data.OleDb;
using System.Diagnostics;
using System.Xml;
namespace OpenDotNet3600
{
public class ReleveMeteo
{
private string strLocation;
private DateTime dtmTime;
private double lfWind;
private string strVisibility;
private string strSkyConditions;
private double lfTemperature;
private double lfDewPoint;
private double lfRelativeHumidity;
private double lfPressure;
private string strStatus;
public ReleveMeteo()
{
}
public ReleveMeteo(string _strLocation, DateTime _dtmTime, double _lfWind, string _strVisibility, string _strSkyConditions, double _lfTemperature, double _lfDewPoint, double _lfRelativeHumidity, double _lfPressure, string _strStatus)
{
strLocation = _strLocation;
dtmTime = _dtmTime;
lfWind = _lfWind;
strVisibility = _strVisibility;
strSkyConditions = _strSkyConditions;
lfTemperature = _lfTemperature;
lfDewPoint = _lfTemperature;
lfRelativeHumidity = _lfRelativeHumidity;
lfPressure = _lfPressure;
strStatus = _strStatus;
}
...
public static ReleveMeteo LireDernierReleve()
{
//déclaration des variables globales
OleDbConnection connBD = null; // connexion sur la base de données
OleDbCommand commSQL; // commande SQL à exécuter sur la source de données
OleDbDataReader drCurseur; // Flux de lignes de données avant uniquement à partir d'une source de données
ReleveMeteo DernierReleve;
try
{
connBD = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + ("3600.mdb")); // création de la connexion sur la base de données
connBD.Open(); // Ouverture de la connexion
//Requete SQL à executer
commSQL = new OleDbCommand("SELECT Last(Data.rec_date) AS rec_date, Last(Data.rec_time) AS rec_time, Last(Data.temp_out) AS temp_out, Last(Data.dewpoint) AS dewpoint, Last(Data.rel_hum_out) AS rel_hum_out, Last(Data.windspeed) AS windspeed, Last(Data.abs_pressure) AS abs_pressure FROM Data;", connBD);
drCurseur = commSQL.ExecuteReader(); // Execute la requete
drCurseur.Read();
DernierReleve = new ReleveMeteo("Le Locle - CIFOM - Ecole Technique", DateTime.Parse(Convert.ToString(drCurseur["rec_date"]).Substring(0, 10) + " " + Convert.ToString(drCurseur["rec_time"]).Substring(11, 8)), Convert.ToDouble(drCurseur["windspeed"]), Convert.ToDouble(drCurseur["temp_out"]), Convert.ToDouble(drCurseur["dewpoint"]), Convert.ToDouble(drCurseur["rel_hum_out"]), Convert.ToDouble(drCurseur["abs_pressure"]));
connBD.Close();
return DernierReleve;
}
catch (Exception ex) //Gère les erreurs du Try
{
if ((int)connBD.State == 1) // Connexion ouverte?
connBD.Close(); // Fermeture de la connexion sur la source de donnée
Console.Write(ex); // Affichage de l'erreur
//Console.End(); // Arret du traitement de la page
return null;
}
}
public static ReleveMeteo LireReleveDateHeure(DateTime Date, DateTime Heure)
{
//déclaration des variables globales
OleDbConnection connBD = null; // connexion sur la base de données
OleDbCommand commSQL; // commande SQL à exécuter sur la source de données
OleDbDataReader drCurseur; // Flux de lignes de données avant uniquement à partir d'une source de données
ReleveMeteo ReleveDateHeure = new ReleveMeteo();
int i;
DateTime dtmTampHeure;
for (i = -5; i < 11; i++)
{
dtmTampHeure = Convert.ToDateTime(Convert.ToInt32(Heure.Hour) + i);
try
{
connBD = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + ("3600.mdb")); // création de la connexion sur la base de données
connBD.Open(); // Ouverture de la connexion
//Requete SQL à executer
commSQL = new OleDbCommand("SELECT Data.rec_date, Data.rec_time FROM Data WHERE (((Data.rec_date)=dtmDate) AND ((Data.rec_time)>dtmDate dtmHeure) AND ((Data.rec_time)<dtmDate dtmHeure));", connBD);
drCurseur = commSQL.ExecuteReader(); // Execute la requete
drCurseur.Read();
if (drCurseur != null)
ReleveDateHeure.dtmTime = DateTime.Parse(Convert.ToString(drCurseur["rec_date"]).Substring(0, 10) + " " + Convert.ToString(drCurseur["rec_time"]).Substring(11, 8));
connBD.Close();
return ReleveDateHeure;
}
catch (Exception ex) //Gère les erreurs du Try
{
if ((int)connBD.State == 1) // Connexion ouverte?
connBD.Close(); // Fermeture de la connexion sur la source de donnée
Console.Write(ex); // Affichage de l'erreur
//Console.End(); // Arret du traitement de la page
return null;
}
}
}
....
___________________________________________________
voila déjà ca.. il s'agit en fait d'aller chercher des informations stockées dans la BD 3600.mbd, lesquelles viennent d'une petite station météo. Ces informations, sont triées par une ou plusieurs requêtes et pour l'instant, seule la méthode "LireDernierReleve" fonctionne. la secconde, LireReleveDateHeure, devrait prendre toutes les informations récoltées entre 2 dates et en faire des moyennes. Le problème est que les relevés de la station sont fait toutes les 10 minutes et donc si on dit une heure qui n'est pas correcte, il faudra aller chercher le relevé le plus près de cette heure.
Est-ce que c'est compréhensif? Penses-tu pouvoir m'aider et voudrais tu mon code complet avec la BD en .zip?
Merci encor..
