Bonjour,
Pour écrire ou lire dans des fichiers Excel, j'utilise le provider Jet oledb et ça marche impec sauf sur un fichier où j'ai le message d'erreur comme quoi il ne trouve pas la table spécifiée dans ma requête SQL. Ma table étant une plage nommée.
Pour isoler le problème, je suis parti d'un nouveau fichier Excel avec le même nom de plage et là ça fonctionne.
J'ai donc affiché toutes les tables avec cette petite fonction en C# :
Et là surprise je n'ai que 28 tables retournées. Dans cette liste, je retrouve une partie de mes feuilles et plages nommées.
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 public string[] GetTableNames() { try { string[] tableNames = null; this.Connection.Open(); DataTable schemaTable = this.Connection.GetSchema("Tables"); if( schemaTable == null || schemaTable.Rows.Count < 1 ) throw new Exception("Impossible d'obtenir les noms des tables."); tableNames = new string[schemaTable.Rows.Count]; int i = 0; foreach( DataRow row in schemaTable.Rows ) tableNames[i++] = row["TABLE_NAME"].ToString(); return tableNames; } finally { this.Connection.Close(); } }
Le problème est cette limite de 28 tables. Comment je fais pour utiliser une table si j'ai au total plus de 28 tables ? et c'est normal cette limite sur le nombre de tables ?
Merci d'avance pour votre aide pour que j'arrête de me prendre la tête![]()
Partager