Salut,
j'ai deux problèmes:
1 - j'ai une erreur qui me pourrit la vie
2 - je finis mon stage demain
C'est pour ça que j'ai besoin d'une aide d'urgence! s'il vous plait aidez moi!
Voilà, je créée une requète que j'éxécute à l'aide des objets OleDb.
La requète semble bonne puisque dans la majorité des cas, je récupère bien mes données oui mais de temps en temps, ma page plante lors de la récupération des données : " Row Handle is Invalid "
Ce que je compreds pas c'est que, écécutée sous Access, la même requète me renvoie bien des valeurs pour les champs qui font planter ( tous les champs font planter en fait ).
J'ai donc eu la bonne idée d'ajouter des try-catch pour que ma page s'affiche mais elle est vide et ça c'est moche!
Voici la création de la trame:
string Requete;
Requete = " SELECT i.INTV_RF_ORG, i.INTV_RF_POP, i.INTV_RF_UIDCorr,i.INTV_NomCorr, ";
Requete += " i.INTV_RF_SITCorr, i.INTV_DirectionCorr,i.INTV_RF_SER,i.INTV_TelephoneCorr, ";
Requete += " i.INTV_PortefCorr, i.INTV_Description, i.INTV_RF_THE, i.INTV_RF_STH, ";
Requete += " i.INTV_HeureAppelAgent, i.INTV_RF_TRA, i.INTV_LieuAttente, i.INTV_DatePlanification, ";
Requete += " i.INTV_MotifAttente, i.INTV_LieuMaintenance, i.INTV_RegionMain, i.INTV_NumPosteMain, ";
Requete += " i.INTV_NumSerieMain, i.INTV_InterventionMain1, i.INTV_InterventionMain2, ";
Requete += " i.INTV_DateFin, i.INTV_HeureFin, i.INTV_EtatIntervention, i.INTV_DateMAJ, ";
Requete += " i.INTV_AutreSousTheme, i.INTV_DureeIntervention ";
Requete += " FROM INTERVENTIONS i ";
// récupération des valeurs transmises en paramêtres et formaant la clé primaire de
// la table INTERVENTIONS
Requete += " WHERE i.INTV_Nature = "+nature;
Requete += " AND (i.INTV_RF_SIT = " + site +" )";
// il faut modifier la date et la mettre au format US pour la comparer
DateTime tt = DateTime.Parse(date);
date = tt.ToString("d",new CultureInfo("en-US")); // converti la date du format français à US
Requete += " AND (i.INTV_DateDebut = #"+ date +"#) ";
Requete += " AND (i.INTV_HeureDebut = #"+heure+"# ) ";
Requete += " AND (i.INTV_RF_INTN = '"+intn+"');";
Response.Write(Requete);
// création d'un objet Connexion
OleDbConnection oConnexion = new OleDbConnection(sConnexionGlobale);
oConnexion.Open();
OleDbCommand maCommande = new OleDbCommand(Requete,oConnexion);
OleDbDataReader monDataReader = maCommande.ExecuteReader();
monDataReader.Read();
Intervention.dRefOrigine = Convert.ToInt32(monDataReader["INTV_RF_ORG"]);
Intervention.dRefPopulation = Convert.ToInt32(monDataReader["INTV_RF_POP"]);
Intervention.sRefUIDCorrespondant = monDataReader["INTV_RF_UIDCorr"].ToString();
Intervention.sNomCorrespondant = monDataReader["INTV_NomCorr"].ToString();
... ( idem pour les autres champs )
// fermeture de la connexion avec la base
monDataReader.Close();
oConnexion.Close();
Voici un exemple de requète qui marche sous Access et pas en ASP.Net:
SELECT i.INTV_RF_ORG, i.INTV_RF_POP, i.INTV_RF_UIDCorr,i.INTV_NomCorr, i.INTV_RF_SITCorr, i.INTV_DirectionCorr,i.INTV_RF_SER,i.INTV_TelephoneCorr, i.INTV_PortefCorr, i.INTV_Description, i.INTV_RF_THE, i.INTV_RF_STH, i.INTV_HeureAppelAgent, i.INTV_RF_TRA, i.INTV_LieuAttente, i.INTV_DatePlanification, i.INTV_MotifAttente, i.INTV_LieuMaintenance, i.INTV_RegionMain, i.INTV_NumPosteMain, i.INTV_NumSerieMain, i.INTV_InterventionMain1, i.INTV_InterventionMain2, i.INTV_DateFin, i.INTV_HeureFin, i.INTV_EtatIntervention, i.INTV_DateMAJ, i.INTV_AutreSousTheme, i.INTV_DureeIntervention FROM INTERVENTIONS i WHERE i.INTV_Nature = 1 AND (i.INTV_RF_SIT = 66 ) AND (i.INTV_DateDebut = #12/10/2004#) AND (i.INTV_HeureDebut = #10:59:21# ) AND (i.INTV_RF_INTN = 'JBY');
Merci, d'avance!