【问题标题】:How to find the new entry has been made into the database from c# [duplicate]如何从c#中找到新条目已进入数据库[重复]
【发布时间】:2012-09-23 16:41:18
【问题描述】:

可能重复:
C#/SQL Database listener help needed

我正在编写一个应用程序来继续监视来自服务器机器的数据库表。如果新条目已添加到表中,那么我必须使用选择查询收集新的详细信息并作为参数传递给最终构建器以启动自动化。

问题: 如何使用 c# 在数据库表中找到新条目?

我对此一无所知?

谁能帮我解决这个问题?

【问题讨论】:

  • 您是否正在考虑批量插入,其中标识列可能被禁用然后发生插入或任何其他类似情况
  • 取决于是单条记录还是多条记录
  • @ Shantanu Gupta:- 是的。客户输入详细信息以将其存储在数据库中。一次,更多的客户可以输入详细信息,数据将保存在数据库中。能否找到最近添加的所有数据用c#一一处理?

标签: c# sql-server-2008


【解决方案1】:

在要向其中插入数据的表中使用自动递增的 ID。然后,您可以在与插入相同的查询中检索最后插入的 id,从而获得对它的引用。语法取决于您使用的数据库类型,但它们都有某种检索最后插入 id 的方法。请参阅以下 SQL 查询文章来执行此操作:

http://www.devx.com/vb2themax/Tip/18893

编辑:对不起,我想我误读了您的问题。你不是插入数据的人吗?在这种情况下,您仍然需要一个自动递增的 ID,以便您可以选择所有具有 ID > 您检索的最后一个 ID 的行。除非您手动重置计数器,否则自动递增的 ID 不会重复使用旧的 ID。

【讨论】:

    【解决方案2】:

    在表中使用额外的列InsertedDateTime。然后,查看表中是否有任何大于上次使用的InsertedDateTimeInsetedDateTime。即您可以读取所有具有InsertedDatatime > 最后一个InsertedDateTime

    的行

    通过使用此解决方案,应用程序不需要了解 PrimaryKey 类型。(自动增量或非自动增量)。

    希望这会有所帮助。

    【讨论】:

      【解决方案3】:

      您可以使用表触发器来执行具有自动化指令的存储过程。

      您可以获取插入的行并将参数传递给存储过程。

      【讨论】:

        猜你喜欢
        • 2013-03-10
        • 2010-09-30
        • 2020-02-26
        • 1970-01-01
        • 2023-03-15
        • 2011-02-21
        • 1970-01-01
        • 1970-01-01
        • 2012-07-30
        相关资源
        最近更新 更多