2011-10-19 44 views
1

Oracle列:user_id的詮釋不爲空,指定的轉換是無效的錯誤,LINQ到Oracle表

Linq查詢:

UserId = user.Field<int>("user_id"), 

用戶ID爲int類型。其他字符串,字符字段工作正常,只有當我使用thsi字段時,我得到這個錯誤。

什麼是正確的映射或anythign我做錯了?

+0

你得到了什麼錯誤? – i100

回答

2

如果您使用的是Field<T>()那麼表明您使用的是DataTable,此時數據庫類型大多不相關。例外情況應該告訴你演員表演失敗的方式 - 類型是什麼類型。如果沒有,你可以很容易地把一些診斷中,但:

object o = user["user_id"]; 
if (o == null) 
{ 
    Console.WriteLine("user_id is null"); 
} 
else 
{ 
    Console.WriteLine("Actual type of user_id: {0}", o.GetType()); 
} 

我懷疑你會發現它longshort,或者類似的東西 - 但這應該給你肯定的。

+0

呵呵。檢查它,它是十進制的。懷疑這樣的事情。感謝您的回答。奇怪的是,int DB列映射到dataTable中的十進制數。 –

+0

@MunishGoyal:什麼*確切*是Oracle中的類型,你的SQL是什麼樣的? –

+0

create table temp_user(user_id int not null,...)它是int類型 –

相關問題