2011-10-19 7 views
1

Oracleの列に無効なエラー、次のとおりです。USER_IDがnullでないint型、指定されたキャストは、LINQ Oracleテーブル

LINQクエリ:

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

ユーザーIDがint型です。他の文字列、charフィールドはうまく動作しますが、私が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()); 
} 

私はあなたがそれがlongまたはshortだ見つける疑われる、またはそのような何か - しかし、これは確かにあなたが表示されるはずです。

+0

ハァッ。それをチェックした、それは小数です。そのような何かを疑っていた。ご回答有難うございます。奇妙なint DBの列は、dataTableの10進数にマップします。 –

+0

@MunishGoyal:Oracleのタイプは* *正確に*で、SQLの外観はどうですか? –

+0

create table temp_user(user_id int not null、...)int型です –

関連する問題