2016-04-19 11 views
1

WebアプリケーションにEF 6.0を使用しています。データを保存または更新しようとすると、EF経由で が返され、 "null参照例外"がスローされます。 このメソッドは、製品DbContext.SaveChangesメソッドデータを保存中にnull参照例外をスローする

private Product createProduct() 
{ 
    Product product = new Product(); 
    product.Name = txtName.Text; 
    product.Price = Convert.ToInt32(txtPrice.Text); 
    product.ProductTypeId = Convert.ToInt32(ddlType.SelectedValue); 
    product.Desciption = txtDesciption.Text; 
    product.Image = ddlImage.SelectedValue; 
    return product; 
} 

を作成するために、この方法は、この方法は、「製品の挿入機能」を実行していると、それは例外

をスロー

protected void btnSubmit_Click(object sender, EventArgs e) 
{ 
    ProductModel model = new ProductModel(); 
    Product product = createProduct(); 
    lblStatus.Text = model.InsertProduct(product); 
} 

「を挿入製品のメソッド」を呼び出していますここでは

public string InsertProduct(Product product) 
{ 
    try 
    { 
     PizzaHuttSliceEntities db = new PizzaHuttSliceEntities(); 
     db.Products.Add(product); 
     db.SaveChanges(); 
     return product.Name + "was successfully inserted! "; 
    } 
    catch (Exception e) 
    { 
     return "Error: " + e; 
    } 
} 

製品クラスは、ここで

public partial class Product 
{ 
    public Product() 
    { 
     this.Carts = new HashSet<Cart>(); 
    } 

    public int ID { get; set; } 
    public int ProductTypeId { get; set; } 
    public string Name { get; set; } 
    public int Price { get; set; } 
    public string Desciption { get; set; } 
    public string Image { get; set; } 

    public virtual ICollection<Cart> Carts { get; set; } 
    public virtual ProductType ProductType { get; set; } 
} 

あるトレース情報解決

enter image description here

+1

に注意を払うすべての人にnull reference exception 感謝を投げDbContext.SaveChanges方法は、あなたが場所を確認するためにデバッグました、そのような参照を指している理由ですのでnull参照が発生していますか?あなたはGoogleの "NullReferenceException"とそのようなエラーの一般的な原因はありますか? – JDupont

+0

ええと、私はあまりにも多くの時間を試みたが、この例外のソースを見つけることができません..デバッグ....例外は、 "insertProductメソッド"のdb.savechanges()で発生する –

+0

私はデータベースで試したとき直接,,,すべて正常に動作しますが、問題はアプリケーションで発生します...何度もチェックしましたがnull参照は見つかりません –

答えて

1

です!実際問題はddlType DataSourceで、SqlDataSourceのスキーマをddlTypeに更新するだけで問題はなくなりました。私は、データベースへの更新を行なったし、ddlTypeはもう存在していなかったし、このような理由のために私の質問

関連する問題