2011-05-16 374 views
2

我在访问数据表中的DataColumn值时出现问题,其名称为某些列的System.ArgumentException Column <ColumnName> does not belong to table。但是,该列存在于数据库中,但具有不同的大小写。我认为DataTable列名不区分大小写。任何1有任何想法,为什么我得到这个。在不同的机器上,这段代码工作正常。我认为这与SQL Coallation没有任何关系,但在这种情况下,两台SQL服务器的煤炭化是相同的。System.ArgumentException列<ColumnName>不属于表

vpg_awardtype = row["vpg_awardtype"]; 
vpg_eventcount = row["vpg_eventcount"]; 

如果我将其更改为以下,然后它的工作:

vpg_awardtype = row["Vpg_AwardType"]; 
vpg_eventcount = row["Vpg_EventCount"]; 

回答

7

我已经解决了。基本上,当一个DataTable包含一个仅在名称不同的情况下,即一个DataTable名称时,例如AwardTypeawardType是相同的列名称,但只在拼写方面不同。如果在DataTable内发生这样的冲突,则会以区分大小写的方式访问所有DataTable列。

在我的情况下,开发人员使用一些联接来获取数据表中的数据。然而,列数没有被过滤,不幸的是在2个不同的表中,列名之一是simillar,但是用不同的大小写。我无法注意到,因为数据表很大。最后,我发现这一点很难。因此别名的一个列名为我工作。