.net System.ArgumentException列<;ColumnName>;不属于表

.net System.ArgumentException列<;ColumnName>;不属于表,.net,.net-3.5,.net,.net 3.5,访问datatable中名为System.ArgumentException列不属于table的DataColumn值时出现问题。对于某些列,会出现System.ArgumentException列不属于table的情况。但是,该列存在于数据库中,但大小写不同。我认为DataTable列名不区分大小写。我知道我为什么会得到这个。在另一台机器上,此代码工作正常。我认为这与SQL合并无关,但在本例中,两台SQL服务器上的合并是相同的 vpg_awardtype = row["vpg_awardtyp

访问datatable中名为System.ArgumentException列不属于table的DataColumn值时出现问题。对于某些列,会出现
System.ArgumentException列不属于table的情况。但是,该列存在于数据库中,但大小写不同。我认为DataTable列名不区分大小写。我知道我为什么会得到这个。在另一台机器上,此代码工作正常。我认为这与SQL合并无关,但在本例中,两台SQL服务器上的合并是相同的

vpg_awardtype = row["vpg_awardtype"];
vpg_eventcount = row["vpg_eventcount"];
如果我将其更改为以下值,则它可以工作:

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

我已经解决了。基本上,当一个数据表包含一个相似的列名时,该列名的大小写不同,即AwardTypeAwardType是相同的列名,但拼写大小写不同。如果在DataTable内部发生此类冲突,则会使对所有DataTable列的访问区分大小写

在我的例子中,开发人员应用了一些连接来获取datatable中的数据。然而,列数没有被过滤,不幸的是,在两个不同的表中,其中一个列名相似,但大小写不同。我没有注意到这一点,因为数据表很大。最后,我以艰难的方式发现了这一点。因此,对其中一个列名使用别名对我很有效