2013-02-14 69 views
1

在我的項目中,我的數據庫中有四個變量。 FileNumber,Number,LastFileNumber和Company。Asp.net C#Mvc3將數據庫添加爲輸入值

我想在我的數據庫中創建Number值的數量。就像如果FileNumber是5號是3,LastFileNumber將5 + 3 - 1 = 7,並應保存到數據庫像

FileNumber 5號3 LastFileNumber 7

FileNumber 6號3 LastFileNumber 7

FileNumber 7 3號LastFileNumber 7

我的代碼是目前:

[HttpPost] 

public ActionResult Create(Eur1 eur1) 
{ 
    int filenum = Convert.ToInt32(eur1.FileNumber); 
    int lastfilenum = Convert.ToInt32(eur1.LastFileNumber); 
    int num = Convert.ToInt32(eur1.Number); 

    if (ModelState.IsValid) 
    { 
     for(int i=0;i<=num;i++) 
     { 
      db.Eur1.AddObject(eur1); 
      db.SaveChanges(); 
      lastfilenum = lastfilenum + 1;   
     } 
     return RedirectToAction("Create"); 
    } 
    return RedirectToAction("Create"); 
} 

但當然它在說

與已經在ObjectStateManager存在相同的密鑰的對象。現有對象處於「未更改」狀態。如果對象處於添加狀態,則只能將其添加到ObjectStateManager。

我該如何解決這個問題?

回答

0

看看你的for循環 - 你一次又一次添加同樣的eur1對象。另一方面,lastfilenum = lastfilenum + 1;的賦值沒有任何意義,因爲您沒有對lastfilenum'進行任何操作。

重新檢查你的邏輯。

+0

感謝您的回答;最後一個文件編號必須通過更改數值的值來增加,但我需要將其保存到數據庫中,您能否幫助我解決具體的數據庫添加問題,例如,如何才能添加eur1.lastfilenumber。用我的邏輯思考是我找不到如何在我的模型數據庫中添加指定值。因爲它使用db.Eur1.AddObject(eur1)保存所有數據。 db.SaveChanges();狀態 – user2071918 2013-02-14 14:24:35