Bonjour,
Dans un programme C#, je dois me connecter à une base de données, faire des requetes sur des tables et exporter ces données vers un fichier plat.
Ma requete ressemble a ça :
strQuery = "SELECT T1.A, T1.B, T1.C FROM T1 JOIN T2 ON T1.D = T2.D AND T1.E = T2.E WHERE T2.F = ....."
Puis, j'execute ma requete et recupère le schéma :
_OleDbCommand.Connection = _oleDbConnection;
_OleDbCommand.CommandText = strQuery;
myReader = _OleDbCommand.ExecuteReader(CommandBehavior.KeyInfo);
//Récupération du schéma de la requete
//pour l'entete de fichier
schemaTable = myReader.GetSchemaTable();
// Création de l'entête du fichier
//Pour chaque colonne du curseur
while (myReader.Read())
{
if (strEnteteColonne == "" && bolAppendToFile == false)
{
foreach (DataRow myField in schemaTable.Rows)
{
////Récupération du nom du champ
if (strEnteteColonne == "" )
{
strEnteteColonne = myField.ItemArray[0].ToString();
}
else
{
strEnteteColonne = strEnteteColonne + "|" + myField.ItemArray[0].ToString();
}
}
.....
Mon problème, c'est qu'au lieu d'avoir dans ma string strEnteteColonne ça :
J'ai ça :
En fait, les champs de la jointure apparaissent alors que je ne les veux pas (Pour info, pour les autres requetes sans jointure, ça fonctionne à merveille)
J'ai essayé avec une sous requête, j'ai le même problème. Sachant que je ne peux pas faire de vue, auriez vous une solution SVP ?
PI : Visual Studio 2008 & Framework 3.0 (je ne peux rien changer ou mettre à jour)
Message édité par SplitForm le 17-12-2009 à 16:15:28