2012-05-12 74 views
2

我得到這個運行時異常LINQ到SQL的DataContext更新

無法投類型的對象System.Data.SqlTypes.SqlDecimal「到 類型「System.String」。

我該如何修復我的代碼才能無任何例外地獲得我的結果?

ProductsDataContext db = new ProductsDataContext(); 

var matchedproduct = db.GetTable<product>().SingleOrDefault(p =>p.ProductID==productID); 

if (matchedproduct != null)    
    product.ProductName = txtpname.Text; 

db.SubmitChanges(); 

回答

3

如果您沒有收到編譯時錯誤,那是因爲您的dbml沒有準確地描述數據庫中的列。你的對象認爲它是一個字符串,但它顯然是數據庫中的一個小數。你應該在dbml編輯器中更新它。然後,當您設置產品名稱時,您將不得不從文本中解析出十進制值。