2014-12-01 38 views
0

我完全不熟悉這個,所以請裸露在我身邊。我向包含座位號的控制器發送一個字符串:A1,A2等和一個包含ID的字符串。asp.net MVC4更新數據庫,其中列=字符串

我想選擇從座位表,其中列中的每個DB行:seatnum等於每個座位號在seatss串並更新從0到ID字符串相關的列名爲狀態。

我用下面的代碼來選擇行,所述seatnum = seatss字符串並返回匹配的行作爲一個JSON對象。如果在字符串中有一個座位號碼,但是如果有多個座位號碼則不起作用。我假設我需要實現某種類型的數組,但不知道如何去做。座位號碼發佈如下:A1,A2,A3。所以我想在,上分開/分解它們,然後將它們匹配到數據庫行。

// 
    // POST: /seats/ 



    public JsonResult Checkout(string seatss, string ID) 
    { 
     var seats = from b in db.seats 
        select b; 


     seats = seats.Where(b => b.seatnum.Equals(seatss)); // Selects the db row where .seatnum = string seatss. 

     //Update seatnum to the value of seatss 


     return Json(seats, JsonRequestBehavior.AllowGet); // returns the selected seats as a json object. 


    } 

因此,在總結,我需要一種方法來匹配字符串到數據庫中的相應seatnum每個座位數量和更新狀態中所包含的ID字符串的整數。

我的數據庫表(座位數)有兩列名爲seatnum和狀態。 seatnum列包含行:A1等,默認狀態爲0。

任何幫助都將不勝感激。

回答

0

你既可以改變,你是通過你的座位號的方式,所以不是一個字符串參數指定的座位你的行動可以期待一個數組或字符串值泛型列表,或者你可以只投出您當前字符串參數一個數組然後修改你的LINQ查詢來使用一個包含函數。所提供的樣品是後者的實施,因爲前者是一個涉及多一點,當然這是未經測試:

public JsonResult Checkout(string seatss, string ID) 
{ 
    var seats = from b in db.seats 
       select b; 


    seats = seats.Where(b => seatss.Contains(b.seatnum)); 

    foreach(var seat in seats) 
    { 
     ... Perform status update on seat 
    } 

    return Json(seats, JsonRequestBehavior.AllowGet); // returns the selected seats as a json object. 


} 
+0

,似乎工作的感謝,但你知道我會怎樣執行的狀態更新?我不知道如何在不使用形式 – Jason 2014-12-01 19:00:19

+0

更新我不知道,如果你在你的應用程序,但如果使用ORM「DB」是的EntityFramework的DbContext執行,在foreach循環中,你會設置的每個「座位」的狀態然後在你的foreach之外,你會稱之爲「db.SaveChanges()」,假設你想保持更新爲所有正在更新的席位的單個事務。否則,您可以在foreach循環內調用SaveChanges,以便將每個單獨的席位更新視爲單獨的原子事務。 – mreyeros 2014-12-01 20:17:02

+0

我相信這是數據庫的情況下,我不知道如何編碼爲每個循環設置狀態? – Jason 2014-12-01 20:22:34