2016-07-30 49 views
-1

我需要獲取特定字段「Quantity」的HttpPost Edit方法中的數據庫值,以便我可以對其進行一些操作並更新其值。我使用實體框架6.如何獲取[HttpPost]編輯方法中特定字段的數據庫值?

[HttpPost] 
[ValidateAntiForgeryToken] 
public async Task<ActionResult> EditGoogles([Bind(Include = "ProductID,Name,Code,Quantity,etc)] SalesDetail salesdetail) 
{ 

    if (ModelState.IsValid) 
    { 

    var oldValue = db.Entry(salesdetail).GetDatabaseValues(); 
    //here i want to get the Quantity from database 
     int QtyBefore = ???; 

    db.Entry(salesdetail).State = EntityState.Modified; 
salesdetail.Quantity = //do some operaion with QtyBefore Here and update 
    await db.SaveChangesAsync(); 
    return Json(new { success = true }); 
    } 
    return PartialView("_EditSales", salesdetail); 
} 
+0

最新問題 –

回答

0

你可以這樣說:

if (ModelState.IsValid) 
{ 
    Models.YourTableName oldValue = db.YourTableName.Where(q=>q.Quantity==salesdetail.Quantity).Select(p=>p).SingleOrDefault(); 
    oldValue.Quantity= YourNewValue; 
    ... 
0

而實際上不必所有必要的信息,這就是我認爲你需要:

[HttpPost] 
[ValidateAntiForgeryToken] 
public async Task<ActionResult> EditGoogles([Bind(Include = "ProductID,Name,Code,Quantity,etc)] SalesDetail salesdetail) 
{ 

    if (ModelState.IsValid) 
    { 

    var oldValue = db.Entry(salesdetail).GetDatabaseValues(); 
    //here i want to get the Quantity from database 
     int QtyBefore = db.Set<SalesDetail>().FirstOrDefault(x => x.Quantity == yourquantityid)?.Quantity ; 

    db.Entry(salesdetail).State = EntityState.Modified; 
salesdetail.Quantity = //do some operaion with QtyBefore Here and update 
    await db.SaveChangesAsync(); 
    return Json(new { success = true }); 
    } 
    return PartialView("_EditSales", salesdetail); 
} 

您還可以找到關於查詢數據庫的文章堆,例如this之一。

+0

在這個解決方案上獲得空引用豁免? – Imran

+0

@伊姆蘭我還沒有測試過它,但你得到了一個開始。找出錯誤是什麼,試着修復它,如果你不知道你可以更新你的問題給我們更多的細節,因爲現在它是我們的球。 – hbulens

相關問題