我正在尝试建立一个数据库。我做了一个表格,我想从中获取数据。一切似乎都还好,但是我的数据库没有更新,也没有更改。我正在使用本地数据库。我试图更改“复制到输出目录”,但是什么也没发生... SubmitChanges似乎还可以:我收到消息,但是在程序关闭后,数据库不包含新数据...我看到了很多帖子有类似的问题,但我没有找到解决方案。

我的代码:

private void felvetButton_Click(object sender, EventArgs e)
{
    Form2 f2 = new Form2();
    if (f2.ShowDialog() == DialogResult.OK)
    {
        Match m = new Match();
        try
        {
            m.datum = f2.datumTextBox.Text;
            m.mod_fk = Convert.ToInt32(f2.modTextBox.Text);
            m.acc_fk = Convert.ToInt32(f2.accTextBox.Text);
            m.champion = f2.champTextBox.Text;
            m.szerep_fk = Convert.ToInt32(f2.roleTextBox.Text);
            m.kimenet = f2.resultTextBox.Text;
            m.mhossz = f2.lengthTextBox.Text;
            m.kill = Convert.ToInt32(f2.killTextBox.Text);
            m.death = Convert.ToInt32(f2.deathTextBox.Text);
            m.assist = Convert.ToInt32(f2.assistTextBox.Text);
            m.kda = float.Parse(f2.kdaTextBox.Text);
            m.killpart = float.Parse(f2.kpTextBox.Text);
            m.farm = Convert.ToInt32(f2.farmTextBox.Text);
            m.ward = Convert.ToInt32(f2.wardTextBox.Text);
            m.redward = Convert.ToInt32(f2.redwTextBox.Text);

            db.SubmitChanges();
            MessageBox.Show("New match added to the database!");
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }
}

最佳答案

您是否不必让实体层知道这个新对象?我想您需要为新实体调用这样的名称:

db.Matches.InsertOnSubmit(match);


通过此实体层从数据库中加载实体,进行修改,然后使用db.SubmitChanges()是非常好的,因为实体层已经知道现有对象!如果实体层没有任何引用,应该如何知道这个新对象?

10-06 12:17