【问题标题】:Move record from a Table to another using foreach in C#在 C# 中使用 foreach 将记录从一个表移动到另一个表
【发布时间】:2018-02-09 18:49:23
【问题描述】:

我的代码

        tbl_Birthday tblB = new tbl_Birthday();
        string today = "01/10/2018";
        var query = from a in db.tbl_users.ToList() where a.birthday == today select a;
        if (query.Count() > 0)
        {
            foreach (var a in query.ToList())
            {
                tblB.name = a.name;
                tblB.score = a.core;
            }
            db.tbl_Birthdays.InsertOnSubmit(tblB);
            db.SubmitChanges();
        }
        dataGridView1.DataSource = from a in db.tbl_Birthdays select a;

这只会将一条记录返回到我的 DataGridView 中,但我有不止一条符合此条件的记录

【问题讨论】:

  • 可能将插入移动到 for 循环中?目前你遍历列表,只设置名称和分数,如果你有tblB.name = query.LastOrDefault()?.nametblB.name = query.LastOrDefault()?.score
  • 谢谢,我有不止一个符合条件的记录。如果可能的话,请为我描述我该如何解决它
  • 您需要将SubmitChanges 移动到foreach 循环内。目前您的foreach 循环只是一遍又一遍地设置namescore 属性,直到它退出。然后在单个项目上调用 SubmitChanges

标签: c# database linq foreach


【解决方案1】:

您需要将InsertOnSubmit 移动到foreach 循环内。目前,您的foreach 循环只是一遍又一遍地设置namescore 属性,直到它退出。然后你在单个项目上调用SubmitChanges

foreach (var user in db.tbl_users.Where(user => user.birthday == "01/10/2018"))
{
    db.tbl_Birthdays.InsertOnSubmit(
        new tbl_Birthday{ name = user.name, score = user.score });
}

db.SubmitChanges();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-15
    相关资源
    最近更新 更多