2016-06-14 10 views
-1

次のコードを使用して、ヘッダーテーブルと詳細テーブルの2つのデータセットを取得しています。エラー:指定されたキャストは無効です。 LINQクエリを実行するとき

String connectionString = "user id=####; password=####!; server=####; database=####"; 
     DataContext db = new DataContext 
      (connectionString); 
     Table<orderHeader> OrderHeader = db.GetTable<orderHeader>(); 
     Table<orderDetails> OrderDetails = db.GetTable<orderDetails>(); 
     List<clsOrders> orderexport = new List<clsOrders>(); 
     List<clsOrdersDetails> orderDetailexport = new List<clsOrdersDetails>(); 
     string custNumber; 
     string custOrderNumber; 
     IQueryable<orderHeader> ordqry = 
      from ord in OrderHeader 
      where ord.ORDERSTATUS == 1 || ord.ORDERSTATUS == 3 
      select ord; 

     foreach (var det in ordqry) 
     { 
      custNumber = det.CUSTNUM.ToString(); 
      custOrderNumber = det.ORDERNUMBER; 

      IQueryable<orderDetails> orddetqry =     
      from orddet in OrderDetails 
      where orddet.ORDERNUMBER == custOrderNumber     
      select orddet; 
      foreach (var I in orddetqry) 
      { 
       clsOrdersDetails ordd = new clsOrdersDetails(); 
       ordd.itemNum = I.ITEMNUM; 
       ordd.itemQty = I.ITEMQTY; 
       orderDetailexport.Add(ordd); 

      } 


     } 
    } 

[Table(Name = "orderDetailsSurface")] 
public class orderDetails 
{ 
    private int _ItemSeq; 
    [Column(IsPrimaryKey = true, Storage = "_ItemSeq")] 
    public int ITEMSEQ 
    { 
     get 
     { 
      return this._ItemSeq; 
     } 
     set 
     { 
      this._ItemSeq = value; 
     } 

    } 

    private string _ItemNum; 
    [Column(Storage = "_ItemNum")] 
    public string ITEMNUM 
    { 
     get 
     { 
      return this._ItemNum; 
     } 
     set 
     { 
      this._ItemNum = value; 
     } 
    } 

    private string _ItemQty; 
    [Column(Storage = "_ItemQty")] 
    public string ITEMQTY 
    { 
     get 
     { 
      return this._ItemQty; 
     } 
     set 
     { 
      this._ItemQty = value; 
     } 
    } 

    private int _ItemDesc; 
    [Column(Storage = "_ItemDesc")] 
    public int ITEMDESC 
    { 
     get 
     { 
      return this._ItemDesc; 
     } 
     set 
     { 
      this._ItemDesc = value; 
     } 
    } 

    private string _ItemCost; 
    [Column(Storage = "_ItemCost")] 
    public string ITEMCOST 
    { 
     get 
     { 
      return this._ItemCost; 
     } 
     set 
     { 
      this._ItemCost = value; 
     } 
    } 

    private string _ItemStatus; 
    [Column(Storage = "_ItemStatus")] 
    public string ITEMSTATUS 
    { 
     get 
     { 
      return this._ItemStatus; 
     } 
     set 
     { 
      this._ItemStatus = value; 
     } 
    } 

    private string _OrderNumber; 
    [Column(Storage = "_OrderNumber")] 
    public string ORDERNUMBER 
    { 
     get 
     { 
      return this._OrderNumber; 
     } 
     set 
     { 
      this._OrderNumber = value; 
     } 
    } 

} 

私は「foreachの(orddetqry中のvar I)」のエラーを取得しています、私は正しい変数の型を渡していますことを確認するために私のDBのセットアップと私のコラムをチェックします。

私は何が間違っているか分かりません。

編集:追加されましたOrderDetailsクラス

+0

残念ながら、clsOrdersDetailsとorderDetailsは含まれていませんでした。だから私は確信が持てませんが、ITEMNUM/ITEMQTYのどこかがnullで、itemNum/itemQtyがnull可能でない可能性があると思います。 –

答えて

0

私は前にそれを見ていない理由を知っていない、問題を発見しました。 orderDetailsクラスの私のpublic varsの1つがINTに設定されていて、STRINGだったはずです。

関連する問題