DataTable orders
を持っていて、ラムダ式を使用してループなしでレコードをフィルタリングしています。 if条件の最初の行は正常に動作し、有効なレコードを返します。指定されたキャストは、列値をフェッチするときにDataRow Listのラムダ式では無効です
if (orders.Rows.Count > 0)
{
//This line returns a record
var defaultOrder = orders.Rows.Cast<DataRow>().Where(p => p.Field<bool>("IsDefault")).ToList();
//The line below gives me an exception Specified cast is not valid.
var defaultOrderID = orders.Rows.Cast<DataRow>().Where(p => p.Field<bool>("IsDefault")).Select(p => p.Field<long>("OrderID")).FirstOrDefault();
}
今、私はこのレコードから特定の列の値を取得したいが、私は例外に
PSを次のようになっている:私はDBに見ることができますし、デバッグモードでdefaultOrder
変数OrderID
の値はです。 データタイプIsDefault
はビットであり、OrderID
はデータベースです。両方ともではないです。
データベーステーブルのIsDefaultとOrderIdのフィールドタイプは何ですか? – user824910
詳細は –