【问题标题】:TableAdapter not updating identityTableAdapter 不更新标识
【发布时间】:2013-12-11 14:26:28
【问题描述】:

我使用 TableAdapter 像这样更新数据库:

var changes = anpDatabase.AnpCollection.GetChanges();
anpCollectionTableAdapter.Update((AnpDatabase.AnpCollectionDataTable)changes);
anpDatabase.AnpCollection.Merge(changes);
anpDatabase.AnpCollection.AcceptChanges();

但是这还不足以更新身份主列...我尝试将适配器的插入命令更改为以下内容:

INSERT INTO AnpCollection
                  (ParentCollectionId, StartDate, EndDate, Completed, IsPartial, Partitioned, IsAutomaticallyGenerated)
VALUES     (@ParentCollectionId,@StartDate,@EndDate,@Completed,@IsPartial,@Partitioned,@IsAutomaticallyGenerated);
SELECT CollectionId, ParentCollectionId, StartDate, EndDate, Completed, IsPartial, Partitioned, IsAutomaticallyGenerated FROM AnpCollection WHERE (CollectionId = SCOPE_IDENTITY())

但是,如果我这样做,而不是更新列,而是出现一个具有正确标识值的新行...这不是我想要的...有人可以帮助我吗?提前致谢!

【问题讨论】:

    标签: c# sql-server strongly-typed-dataset tableadapter


    【解决方案1】:

    INSERT 语句与SELECT 放在最后,看起来正确的代码是:

    anpCollectionTableAdapter.Update(anpDatabase.AnpCollection);
    

    代替:

    var changes = anpDatabase.AnpCollection.GetChanges();
    anpCollectionTableAdapter.Update((AnpDatabase.AnpCollectionDataTable)changes);
    anpDatabase.AnpCollection.Merge(changes);
    anpDatabase.AnpCollection.AcceptChanges();
    

    【讨论】:

    • 就是这样!谢谢!!
    猜你喜欢
    • 1970-01-01
    • 2015-05-20
    • 1970-01-01
    • 1970-01-01
    • 2018-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-21
    相关资源
    最近更新 更多