【问题标题】:Deleting Row from Database C# WPF Linq从数据库 C# WPF Linq 中删除行
【发布时间】:2017-03-14 08:08:55
【问题描述】:

我想在我的 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;
        }
    }

我的数据库属性设置为 Copy If Newer,我已经尝试设置为 Copy Always,但这也无济于事。

有人知道我的问题的答案吗?

【问题讨论】:

  • 'Copy If Newer' 是正确的选择,请尝试在没有调试器/Visual Studio 的情况下运行应用程序本身。
  • 这不行@LeiYang
  • 如果您逐步调试代码,“查询”是否有值或为空?
  • 不,已经填满了@chillfire
  • 您是否使用 LinqDataAdapter 来填充数据网格?

标签: c# wpf linq linq-to-sql


【解决方案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();

【讨论】:

  • 你能试试这个吗,首先检查查询是否返回一些值 var items = query.ToList(); db.tbl_Users.DeleteAllOnSubmit(items); db.SubmitChanges();
  • 已经做到了,它应该(理论上)工作,但是在 Datacontext 和数据库之间的某个地方出了点问题
  • 您能否尝试使用 DataContext 删除我刚刚添加的原始答案.. 希望它会有所帮助.. 或者我会学到新的东西:)
猜你喜欢
  • 1970-01-01
  • 2019-01-04
  • 2017-12-05
  • 1970-01-01
  • 1970-01-01
  • 2021-04-18
  • 2012-02-11
  • 1970-01-01
  • 2012-12-11
相关资源
最近更新 更多