0

以下のコードを試しているときにこのエラーが発生しました

IEnumerable<DataRow> projjType = from projT in dtProjList.AsEnumerable()
                                 where projT.Field<int?>("ProjectId") == projId && 
                                 projT.Field<int?>("FilterId") == 1 
                                 select projT;

エラーのスタックトレースは

at System.Data.DataRowExtensions.UnboxT`1.NullableField[TElem](Object value)
   at System.Data.DataRowExtensions.Field[T](DataRow row, String columnName)
   at Folder.Projects.<>c__DisplayClass28.<repProjectList_ItemDataBound>b__1e(DataRow projT) in D:\Folder\Project.aspx.cs:line 1061
   at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
   at System.Linq.SystemCore_EnumerableDebugView`1.get_Items()

ここで、dtProjList は DataTable であり、テーブル構造は次のとおりです。

ProjectId (int)
ProjectName (string)
ProjectThumb (string)
FilterTypeId (int)
FilterId (int)
FilterType (string)

すべてがnull値ではありません。誰か助けてください。

前もって感謝します。

更新::これは私のテーブルの唯一のレコードです。エラーは単一のレコードによるものですか??

ProjectId   ProjectName ProjectThumb    FilterTypeId    FilterId    FilterType
   1    Datamaster  small_14.jpg         1             1               Final
4

1 に答える 1

4

すべてのフィールドが null でない場合、フィールドintを nullable の代わりにキャストするint?

var projjType = from projT in dtProjList.AsEnumerable()
                where projT.Field<int>("ProjectId") == projId && 
                      projT.Field<int>("FilterId") == 1 
                select projT;
于 2012-11-08T12:31:24.770 に答える