2

このランタイム例外が発生します

タイプ'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();
4

1 に答える 1

3

コンパイル時エラーが発生しない場合は、dbmlがデータベース内の列を正確に表していないためです。オブジェクトは文字列と見なしますが、データベースでは明らかに10進数です。dbmlエディターで更新する必要があります。次に、製品名を設定するときに、テキストから10進値を解析する必要があります。

于 2012-05-12T09:11:01.900 に答える