Recebendo o valor do campo na DataTable quando o nome coluna tem espaços
-
18-09-2019 - |
Pergunta
Eu tentei:
ObjDTOleDBNFeIntegra.Rows(I)("[Cnpj Cpf]").ToString() //with brackets
ObjDTOleDBNFeIntegra.Rows(I)("'Cnpj Cpf'").ToString() //with apostrophe
ObjDTOleDBNFeIntegra.Rows(I)("Cnpj Cpf").ToString() //without anything
Eu estou usando VB.NET, mas comentários com apóstrofos em aqui parecem não ser identificado.
E eu recebo as exceções para cada caso:
Coluna '[Cnpj Cpf]' não pertence à tabela tabela. (falha)
Coluna significa 'Cnpj Cpf' não pertence à tabela tabela. (falha)
Coluna '' Cnpj Cpf '' não pertence à tabela tabela. (falha)
O que devo fazer para ger um valor de um campo em um dataTable quando o nome da coluna tem espaços?
Solução
Você já viu o que o coluna pensa que é chamado? Ele pode ter sublinhado, por exemplo. Loop sobre as colunas e descobrir (desculpe, exemplos em C #):
foreach(DataColumn col in table.Columns) {
Debug.WriteLine(col.ColumnName);
}
Na verdade, é mais rápido usar a coluna, se você está fazendo isso em um loop, então eu poderia usar algo como:
DataColumn col = table.Columns["whatever"];
foreach(DataRow row in table.Rows) {
Console.WriteLine(row[col]);
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow