为什么我不能在数据库中插入数据?

本文关键字:插入 数据 数据库 不能 为什么 | 更新日期: 2023-09-27 18:03:53

我试图插入一些东西到本地数据库,但它不工作。

    ModelContainer mc;
    public DBController()
    {
        mc = new ModelContainer();
    }
    public void SaveArtikel(string name)
    {
        mc.Connection.Open();
        int id = mc.Produkt.ToList().Last().ID + 1;
        mc.Produkt.AddObject(new Produkt() { ID = id, Name = name });
        mc.SaveChanges();
        mc.Connection.Close();
    }

我就是这样尝试的。(它和德语单词混在一起…)之后,我可以访问文章,但它不在数据库中..

编辑:db是一个.sdf文件。

我右键单击项目,然后按"新建项目"。在那里我搜索了"Local Database" (Compact Server)

为什么我不能在数据库中插入数据?

using (var mc = new ModelContainer())
{
    int id = mc.Produkt.Max(p=>p.ID) + 1;
    mc.Produkt.AddObject(new Produkt() { ID = id, Name = name });
    mc.SaveChanges();
}

你可以尝试类似于上面的东西,也请注意,我改变了这一行mc.Produkt.ToList().Last().ID + 1;的原因是什么。tolist()所做的是检索所有数据库记录到内存中,然后搜索下一个可用的Id,我这样做的方式,只有一个记录被选中。

嗯,我认为它一直有效。

我发布了这个项目,看看它是如何工作的。经过多次测试,它看起来非常好。即使在我重启电脑后,数据仍在数据库中。

我不知道为什么我不能手动查看数据。但是这没有问题。

感谢所有帮助过我的人!

嗯,可能发生在你身上的是,当你使用本地data.mdf时,它有一个属性设置为总是复制到你的调试bin文件夹,所以每次你调试和运行你的项目时都会发生这种情况。如果您将数据库定位在bin文件夹中,那么当您插入某些内容时,您可以看到它在那里,但是当您再次运行项目时,表被清除。你需要做的是不断跟踪你的数据是改变属性"复制到输出目录"上的database.mdf"复制如果更新"。