2009-04-27 100 views
7

我試圖將數據插入到我的數據庫中有2臺無法投類型的對象System.Data.Linq.DataQuery`1 [System.Int32]爲鍵入「System.IConvertible」

產品
(產品ID):1
(IDNumber中):200900110
(產品名稱):百事可樂

訂單
(訂單id):1(自動遞增1)
(產品ID):1
(日期):1/1/2009年

的代碼是這樣的:

var db = new ProductOrder(); 
var idNum = from p in db.Product 
      where p.IDNumber == 200900110 
      select p.ProductID; 

var order = new Order(); 
      order.productID = Convert.ToInt32(idNum); 
      order.Date = DateTime.Now; 
db.Order.InsertOnSubmit(nTime); 
db.SubmitChanges(); 

後,我運行它給了我這樣的錯誤:

無法轉換 類型的對象System.Data.Linq.DataQuery '1 [System.Int32]' to type'System.IConvertible'

+3

我希望沒有人會介意 - 我已經修正了縮進以顯示陳述更清楚的地方。 – 2009-04-27 06:27:28

回答

27

您的查詢:

from p in db.Product 
where p.IDNumber == 200900110 
select p.ProductID 

不返回單個結果,而是返回結果列表。在你的情況下,這將是一個包含單個產品ID的列表。你應該將它修改爲這樣:

(from p in db.Product 
where p.IDNumber == 200900110 
select p.ProductID).Single() 

如果您運行在調試你的代碼,你將鼠標懸停在idNum變量,你會看到,這是一個DataQuery實例。

相關問題