System.ArgumentException列<columnname>不属于表</columnname>

时间:2011-05-16 10:21:33

标签: .net .net-3.5

我在访问datatable中的DataColumn值时遇到问题,其名称System.ArgumentException Column <ColumnName> does not belong to table出现在某些列中。但是,该列存在于数据库中,但具有不同的大小写。我认为DataTable列名称不区分大小写。任何人都知道我为什么会这样做。在另一台机器上,此代码工作正常。我不认为它与SQL Coallation有任何关系,但在这种情况下,两个SQL服务器上的联合都是相同的。

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

如果我将其更改为以下内容,那么它正在运行:

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

1 个答案:

答案 0 :(得分:8)

我已经解决了。基本上,当DataTable包含一个名称仅在Case中名称不同的simillar列名称时,即 AwardType awardType 是相同的列名,但在拼写情况下只有不同。如果在DataTable内发生此类冲突,则会使对所有DataTable列的访问区分大小写。

在我的情况下,开发人员应用了一些连接来获取数据表中的数据。然而,列的数量没有被过滤,不幸的是,在2个不同的表中,列名称之一是simillar但是用不同的情况写。我无法注意到因为数据表很大。最后我发现了这个问题。因此别名列名之一对我有用。