简体   繁体   中英

Deleting Row from Database C# WPF Linq

I want to delete a row from the Database on a selected row in my Datagrid I already got how to select a row in my Datagrid, but when I delete it on button_click it only deletes it in my Datagrid but not in my actual Database

I'm using the following code to delete my Rows:

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;
        }
    }

My Database-property is set on Copy If Newer and I already tried to set in to Copy Always but that wouldn't help either.

Does someone know the answer to my problem?

You have to call .ToList() hope it will help

var items = query.ToList();

foreach (var item in items)
{
    db.tbl_Users.DeleteOnSubmit(item);
}

or you can use DataContext

List<GroupMember> removeFromGroup = (from gm in dataContext.GroupMembers
                                 where (gm.memberID == memberid))
                                 select gm).ToList();

dataContext.GroupMembers.DeleteAllOnSubmit(removeFromGroup);
dataContext.SubmitChanges();

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM