Obtenir la valeur du champ en DataTable lorsque le nom de la colonne a des espaces
-
18-09-2019 - |
Question
J'ai essayé:
ObjDTOleDBNFeIntegra.Rows(I)("[Cnpj Cpf]").ToString() //with brackets
ObjDTOleDBNFeIntegra.Rows(I)("'Cnpj Cpf'").ToString() //with apostrophe
ObjDTOleDBNFeIntegra.Rows(I)("Cnpj Cpf").ToString() //without anything
J'utilise VB.NET, mais les commentaires avec apostrophes dans ici ne semble pas être identifié.
Et je reçois les exceptions pour chaque cas:
Colonne '[CNPJ Cpf]' ne fait pas partie du tableau de la table. (échec)
Colonne 'CNPJ Cpf' ne fait pas partie du tableau de la table. (Échec)
colonne '' n'appartient pas au tableau de table 'CNPJ Cpf'. (échec)
Que dois-je faire pour ger une valeur d'un champ dans un dataTable lorsque le nom de la colonne a des espaces?
La solution
Avez-vous vérifié ce que le colonne pense qu'il est appelé? Il pourrait avoir underscores, par exemple. Boucle sur les colonnes et trouver (désolé, des exemples en C #):
foreach(DataColumn col in table.Columns) {
Debug.WriteLine(col.ColumnName);
}
En fait, il est plus rapide d'utiliser la colonne si vous le faites dans une boucle, donc je pourrais utiliser quelque chose comme:
DataColumn col = table.Columns["whatever"];
foreach(DataRow row in table.Rows) {
Console.WriteLine(row[col]);
}