OK LINQ to DataSetsを使用するときにブール型キャストの問題を解決するように見えますが、新しい結果セットが新しい問題を引き起こすようです。だから、LINQ使用して、オブジェクトにブール型プロパティを移入された次の行を見てみましょう:LINQ to DataSetsを使用するときにブール型をキャストするときにエラーが発生する
.IsActive = If(fd.IsNull("IsActive"), False, fd.Field(Of Boolean)("IsActive"))
を私も持っていた次といくつかの成功:
.IsActive = If((fd.Field(Of Integer?)("IsActive").HasValue), fd.Field(Of Integer)("IsActive"), False)
この時点でもないアプローチ働いた。データベース内の "IsActive"型は 'ビット'であり、DataSetでは返されるすべてのレコードの値が '0'または '1'です。いずれにしても、次のエラーが表示されます。
"指定されたキャストは無効です。数値からキャストする場合、値は無限大未満の数値である必要があります。
ここで間違っていることを理解したいと思います。誰も私がどのようにキャスティングする必要があります説明することはできますか?ありがとう!
なぜデータテーブル内のIsActive列がブール値ではないのですか?どのようにデータテーブルを埋めるのですか? Visual Studioで生成された型付きデータセットは、通常、データベースのビットフィールドからブール値のデータ列を作成します。 –
実際にSQL Server(2008)には「ブール型」はありません。これらの型の値に「ビット」フィールドを使用します。しかし、あなたのコメントにより、私はデータベースを2回見て、以下の解決策を決定しました。私はあなたのコメントをアップしました。 – atconway
私は知っている、私はデータセットを参照していた。だからまだ私には不思議に思っています... –