C# 通过在SQLite中具有关系的数据集删除数据库中的行

C# 通过在SQLite中具有关系的数据集删除数据库中的行,c#,linq-to-dataset,dataset-designer,C#,Linq To Dataset,Dataset Designer,我有一个简单的数据库和数据集,看起来像: 文件: myDb klasa数据: 教师资料: 现在我想删除ID为2的教师: 全部代码如下: DataSet2 db = new DataSet2(); nauczycielTableAdapter teacherAdapter = new nauczycielTableAdapter(); teacherAdapter.Fill(db.nauczyciel); klasaTableAd

我有一个简单的数据库和数据集,看起来像: 文件: myDb

klasa数据:

教师资料:

现在我想删除ID为2的教师: 全部代码如下:

        DataSet2 db = new DataSet2();
        nauczycielTableAdapter teacherAdapter = new nauczycielTableAdapter();
        teacherAdapter.Fill(db.nauczyciel);

        klasaTableAdapter classAdapter = new klasaTableAdapter();
        classAdapter.Fill(db.klasa);

        var teacherToRemove = db.nauczyciel.Where(p => p.nauczycielID == 2).SingleOrDefault();

        DataRow[] classesTeacher = teacherToRemove.GetChildRows(db.Relations["FK_klasa_0_0"]);
        if (classesTeacher.Length == 0)
        {
            teacherToRemove.Delete();
            teacherAdapter.Update(db.nauczyciel);
        }
        else
            Console.WriteLine("You must first remove classes teacher");
        Console.ReadKey();
FK_klasa_0_0-这是klasa和nauczyciel之间关系的名称

我有一个例外:

其他信息:并发冲突:Delete命令元素与以下记录数相关:0预期记录数:1


如何解决此问题?

我认为它解决了我的问题: 我创建了相同的数据库,但将其命名为extension.sqlite。以前的数据库没有此扩展,这可能会给我带来问题

        DataSet2 db = new DataSet2();
        nauczycielTableAdapter teacherAdapter = new nauczycielTableAdapter();
        teacherAdapter.Fill(db.nauczyciel);

        klasaTableAdapter classAdapter = new klasaTableAdapter();
        classAdapter.Fill(db.klasa);

        var teacherToRemove = db.nauczyciel.Where(p => p.nauczycielID == 2).SingleOrDefault();

        DataRow[] classesTeacher = teacherToRemove.GetChildRows(db.Relations["FK_klasa_0_0"]);
        if (classesTeacher.Length == 0)
        {
            teacherToRemove.Delete();
            teacherAdapter.Update(db.nauczyciel);
        }
        else
            Console.WriteLine("You must first remove classes teacher");
        Console.ReadKey();