2011-05-16 53 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,但是用不同的大小寫。我無法注意到,因爲數據表很大。最後,我發現這一點很難。因此別名的一個列名爲我工作。