GetSchemaTable trop de champs ! [C#] (RESOLU) - C#/.NET managed - Programmation
Marsh Posté le 17-12-2009 à 15:28:09
C'est même pire que prévu, il me fait ça en fait :
Je viens d'essayer en construisant ma requete comme cela :
SELECT T1.A, T1.B, T1.C FROM T1, T2 WHERE T1.D = T2.D AND T1.E = T2.E AND T2.F = .....
Et bien ça fait pareil
Marsh Posté le 17-12-2009 à 16:15:06
Bonjour SplitForm
Voici la réponse à ton problème. Dans la commande :
il faut retirer CommandBehavior.KeyInfo
Ce qui devient :
Bon ben voila, vous l'aurez compris, j'ai trouvé moi même, après 6h de recherche et de tests, la solution !
Si ça peut servir à quelqu'un d'autre...
Marsh Posté le 17-12-2009 à 14:38:00
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
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