2014-12-01 3 views
0

저는 완전히 새롭기 때문에 저와 잘 지내십시오. 좌석 번호가 포함 된 내 컨트롤러에 문자열을 보냅니다 : A1, A2 등. ID가 포함 된 문자열.asp.net MVC4 업데이트 데이터베이스 where column = string

column : seatnum이 seatss 문자열의 각 시트 번호와 같고 status라는 관련 열을 ID 문자열로 업데이트하는 자리 테이블에서 각 db 행을 선택하려고합니다.

아래 코드를 사용하여 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. 


    } 

그래서 요약 나는 ID 문자열에 포함 된 정수 상태를 데이터베이스에서 해당 seatnum에 문자열의 각 좌석 번호와 일치하고 업데이트 할 수있는 방법이 필요하다.

내 데이터베이스 테이블 (좌석)에는 seatnum 및 status라는 두 개의 열이 있습니다. seatnum 열에는 A1 등의 행이 있으며 상태는 기본적으로 0입니다.

아무런 도움을받지 못 하셨다면 큰 도움이 될 것입니다.

답변

0

좌석 번호를 전달하는 방식을 변경할 수 있으므로 좌석 코드라는 문자열 매개 변수 대신 배열 또는 문자열 값의 일반 목록을 기대할 수 있습니다. 아니면 현재 문자열 매개 변수를 배열을 작성한 다음 contains 함수를 사용하도록 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

+0

응용 프로그램에서 ORM을 사용하고 있는지 확실하지 않지만 "db"가 ​​EntityFramework DBContext 구현 인 경우 foreach 루프에서 각 "좌석" foreach의 바깥 쪽에서 업데이트되는 모든 좌석에 대해 단일 트랜잭션으로 업데이트를 유지하려고한다고 가정하면 "db.SaveChanges()"를 호출합니다. 그렇지 않으면 foreach 루프 안에 SaveChanges를 호출하여 개별 시트 업데이트가 개별적인 원자 트랜잭션으로 처리되도록 할 수 있습니다. – mreyeros

+0

나는 그것이 db의 경우라고 생각한다. 각 루프마다 상태를 설정하는 코드 작성법을 모르겠다. – Jason