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