尝试删除2行后,我有DBConcurencyExeption

本文关键字:我有 DBConcurencyExeption 2行 删除 | 更新日期: 2023-09-27 18:19:36

我在程序中使用DataSetDataAdapter。在我的数据库中,我编写了一个名为DeleteTheme:的存储过程

     ALTER PROCEDURE [dbo].[DeleteTheme]
     @Theme nchar(50)
     AS
     DELETE setOfThemes
     FROM  
     setOfThemes INNER JOIN themes
     ON setOfThemes.number=themes.ID
     WHERE themes.thema=@Theme

在C#中,我可以使用以下代码从DataGrid中删除行:

    private void ThemeDataGrid_PreviewKeyDown(object sender, KeyEventArgs e)
    {
        if (e.Key == Key.Delete)
        {
            DataRow dr = myDataSet.Tables["themes"].NewRow();
            dr = myDataSet.Tables["themes"].Rows[numberOfRow];
            dr.Delete();
        }
    }

在那之后,我用这个代码使用按钮更新:

        adapter.DeleteCommand = adapterCommands.DeleteTheme();
        adapter.Update(myDataSet, "themes");

它会导致异常

DBConcurencyExeption
并发冲突:DeleteCommand影响了预期的1条记录中的0条。"

它怎么了?

(我在点击更新按钮后删除了2行)

尝试删除2行后,我有DBConcurencyExeption

在代码示例中,您似乎通过调用NewRow()方法向DataTable添加了一行。您不想通过调用Delete()方法将数据行标记为已删除吗。此链接可能会有所帮助。