我试图找到在线执行此操作的答案,但显然无法完成(我的意思是在应用程序级别,而不是数据库级别)。我需要完全清除我的数据集并同时重置主键。有什么想法吗?
或者,我可以使用的一种技巧是重新初始化数据集,但这似乎也不可能,因为数据集在应用程序中的不同类之间共享(我正在 Program.cs 中创建共享数据集)。
谢谢
法鲁克
更新:
好的,我尝试了这个:
MyDataSet SharedDS = new MyDataSet();
。 。 。
CleanDS()
{
MyDataSet referenceDS = new MyDataSet();
sharedDS.Table1.Reset();
sharedDS.Merge(referenceDS);
}
我原来的问题已经解决,但现在我得到一个 System.ArgumentException,因为 Column1 不属于 Table1,我可以在数据集查看器中看到列以及填充的行。另请注意,我可以手动重新创建整个数据集,但仍然遇到相同的错误。有什么想法吗?
最佳答案
我尝试使用 autoincrementseed 和 autoincrementstep ,它终于起作用了。以下供其他人引用:
sharedDS.Clear();
sharedDS.Table1.Columns[0].AutoIncrementStep = -1;
sharedDS.Table1.Columns[0].AutoIncrementSeed = -1;
sharedDS.Table1.Columns[0].AutoIncrementStep = 1;
sharedDS.Table1.Columns[0].AutoIncrementSeed = 1;
请参阅此线程中的推理: http://www.eggheadcafe.com/community/aspnet/10/25407/autoincrementseed.aspx
以及: http://msdn.microsoft.com/en-us/library/system.data.datacolumn.autoincrementseed(VS.85).aspx
感谢大家的帮助!
关于c# - 重置主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/764004/