当列名具有空格时,从DataTable中的字段获取值

时间:2010-03-08 19:04:54

标签: c# vb.net visual-studio datatable system.data

我试过了:

ObjDTOleDBNFeIntegra.Rows(I)("[Cnpj Cpf]").ToString() //with brackets  
ObjDTOleDBNFeIntegra.Rows(I)("'Cnpj Cpf'").ToString() //with apostrophe  
ObjDTOleDBNFeIntegra.Rows(I)("Cnpj Cpf").ToString() //without anything  

我正在使用VB.NET,但这里的撇号注释似乎没有被识别出来。

我得到每个案例的例外情况:
列'[Cnpj Cpf]'不属于表Table。(失败) 列'Cnpj Cpf'不属于表Table。(失败) 列''Cnpj Cpf''不属于表格表。(失败)

当列名有空格时,我应该怎么做才能从dataTable中的字段中获取值?

1 个答案:

答案 0 :(得分:10)

您是否检查了认为它被调用的内容?例如,它可能有下划线。遍历列并查找(抱歉,C#中的示例):

foreach(DataColumn col in table.Columns) {
    Debug.WriteLine(col.ColumnName);
}

实际上,如果你在循环中使用该列会更快,所以我可能会使用类似的东西:

DataColumn col = table.Columns["whatever"];
foreach(DataRow row in table.Rows) {
    Console.WriteLine(row[col]);
}