我想从Datagrid中选定行的数据库中删除一行 我已经知道如何在我的Datagrid中选择一行,但是当我在button_click上删除它时,它只在我的Datagrid中删除它而不是在我的实际数据库中删除它
我使用以下代码删除我的行:
private void btnDeleteUser_Click(object sender, RoutedEventArgs e)
{
DialogResult dr = System.Windows.Forms.MessageBox.Show("Do You Want to Delete this User?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
if (dr == DialogResult.Yes)
{
var query =
from t in db.tbl_Users
where t.Name == name
select t;
foreach (var t in query)
{
db.tbl_Users.DeleteOnSubmit(t);
}
db.SubmitChanges();
var refresh =
(from q in db.tbl_Users
select new { Name = q.Name, Rights = q.Rights, Operatortag = q.Operatortag, Active = q.Active, Cardcode = q.CardCode }).ToList();
dgUsers.ItemsSource = refresh;
}
}
我的数据库属性设置为复制如果更新,我已经尝试设置为始终复制,但这也不会有帮助。
有人知道我的问题的答案吗?
答案 0 :(得分:1)
你必须调用.ToList()希望它能帮助
var items = query.ToList();
foreach (var item in items)
{
db.tbl_Users.DeleteOnSubmit(item);
}
或者您可以使用 DataContext
List<GroupMember> removeFromGroup = (from gm in dataContext.GroupMembers
where (gm.memberID == memberid))
select gm).ToList();
dataContext.GroupMembers.DeleteAllOnSubmit(removeFromGroup);
dataContext.SubmitChanges();