im试图从数据网格中选择一个单元格(列是电影的票和时间),并使用文本框减去票的数量,此时我可以减去所有票,但我想减去用户选择的票(im使用数据库中的wpf和linq)
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");
}
}
实际上,所提供的信息对于精确的代码来说是不够的。但是,假设DataGrid
的ItemsSource
包含FilmDetail
对象的集合,您可以尝试将SelectedItem
强制转换为FilmDetail
,而不是像您尝试的那样将String
强制转换。
然后使用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");
}
}