2016-07-30 3 views
-1

特定のフィールド "Quantity"のHttpPost Editメソッドでデータベース値を取得する必要があります。そのため、その値を更新し、その値を更新することができます。私はあなたがこのようにそれを行うことができます6.[HttpPost] editメソッドの特定のフィールドのデータベース値を取得する方法は?

[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

Entity Frameworkのを使用しています:

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

この解決策ではnull参照例外が発生しますか? – Imran

+0

@Imran私はそれをテストしていませんが、あなたはこれで頭をスタートさせます。エラーが何であるかを見つけて修正してみてください。質問が更新され、詳細がわかります – hbulens

関連する問題