2014-04-15 3 views
1

메신저는 데이터 표에서 셀을 선택하려고합니다 (열은 티켓과 영화 시간 임). 모든 티켓을 빼낼 수있는 순간에 텍스트 상자를 사용하여 티켓 수를 뺍니다. 그러나 idatagrid 텍스트 상자를 사용하여 선택된 셀 빼기 가져 오기

private void CompleteBooking_Click(object sender, RoutedEventArgs e) 
{ 
    try 
    { 
     //string current = (string)DvgFilmTime.SelectedItem; 

     var query = from x in db.FilmDetails select x; 
     foreach (var x in query) 
     { 
      x.Tickets -= Convert.ToInt32(tbxTicket.Text); 
     } 
     db.SubmitChanges(); 
     MessageBox.Show("Booking Completed"); 
    } 
    catch (Exception) 
    { 
     MessageBox.Show("Error please select a number"); 
    } 
} 

답변

0

가 실제로 제공된 정보가 정확한 코드에 대한 충분하지 않은 사용자가 선택 (데이터베이스에서 메신저 사용하여 WPF 및 LINQ) 하나를 빼야합니다. 그러나 DataGridItemsSource 개체에 FilmDetail 개체가 포함되어 있다고 가정하면 시도한 것처럼 String 대신 을 FilmDetail 번으로 캐스팅 해 볼 수 있습니다.

그런 다음 FilmDetail (기본 키, 예를 들어 DetailId)의 고유 한 속성 값을 사용하여 일치하고 데이터베이스에 행을 해당 갱신 :

if(DvgFilmTime.SelectedItem != null) 
{ 
    FilmDetail current = (FilmDetail)DvgFilmTime.SelectedItem; 

    var filmDetail = (from x in db.FilmDetails 
         where x.DetailId == current.DetailId 
         select x).FirstOrDefault(); 
    if(filmDetail != null) 
    { 
     filmDetail.Tickets -= Convert.ToInt32(tbxTicket.Text); 
     db.SubmitChanges(); 
     MessageBox.Show("Booking Completed"); 
    } 
} 
관련 문제