尝试删除2行后,我有DBConcurencyExeption
本文关键字:我有 DBConcurencyExeption 2行 删除 | 更新日期: 2023-09-27 18:19:36
我在程序中使用DataSet
和DataAdapter
。在我的数据库中,我编写了一个名为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行)
在代码示例中,您似乎通过调用NewRow()
方法向DataTable
添加了一行。您不想通过调用Delete()
方法将数据行标记为已删除吗。此链接可能会有所帮助。