Oracle列:user_id的诠释不为空,指定的转换是无效的错误,LINQ到Oracle表
Linq查询:
UserId = user.Field<int>("user_id"),
用户ID为int类型。其他字符串,字符字段工作正常,只有当我使用thsi字段时,我得到这个错误。
什么是正确的映射或anythign我做错了?
Oracle列:user_id的诠释不为空,指定的转换是无效的错误,LINQ到Oracle表
Linq查询:
UserId = user.Field<int>("user_id"),
用户ID为int类型。其他字符串,字符字段工作正常,只有当我使用thsi字段时,我得到这个错误。
什么是正确的映射或anythign我做错了?
如果您使用的是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());
}
我怀疑你会发现它long
或short
,或者类似的东西 - 但这应该给你肯定的。
呵呵。检查它,它是十进制的。怀疑这样的事情。感谢您的回答。奇怪的是,int DB列映射到dataTable中的十进制数。 –
@MunishGoyal:什么*确切*是Oracle中的类型,你的SQL是什么样的? –
create table temp_user(user_id int not null,...)它是int类型 –
你得到了什么错误? – i100