2011-10-19 42 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类型 –

相关问题