【问题标题】:ADO.net update without SQL?没有 SQL 的 ADO.net 更新?
【发布时间】:2012-04-09 13:53:09
【问题描述】:

这可能是一个愚蠢的问题。但是 ADO.net 是否支持无需编写 SQL 命令即可更新到数据库?

示例: 我有一个从数据库中读取数据并将行保存在内存中的方法。然后我修改了一些行。那么是否可以让 ADO.net 更新数据库的最新更改而无需编写更新 SQL 语句,而是让 ADO.net 解决?

我问这个是因为我可能想在以后更新。我可以只将 SQL 语句存储在一个列表中,但随后我将进行多次更新,而不是只进行一项需要较长时间的大更新。

【问题讨论】:

    标签: c# ado.net


    【解决方案1】:

    您需要的是某种ORM,而ADO 不是ORM。所以不行。您必须编写 SQL。不过,您可以通过编写存储过程来简化事情。然后就可以使用ADO参数了

    如果需要,您可以将更改作为对象保存在内存中,直到您需要实际持久化它们。然后你可以有一个映射器来获取对象并为你编写 SQL。但是,您正在重做一些已经在 ORM 中完成的工作

    【讨论】:

      【解决方案2】:

      就像你用来获取数据的 sql 一样,你需要 sql 来放置数据。它还需要更新要更新的列。我不认为它可以是自动的。或者使用实体框架。可能将对象保存为更新 (ID) 是立即更新或更新的方法。

      【讨论】:

        【解决方案3】:

        ADO.NET 支持 DataAdapter 和 DataSet,它们允许您执行以下操作:

        1. 在您的数据集中处理数据。
        2. 通过将 DataSet 作为参数传递给 DataAdapter 的 Update 方法,将更改推送到数据库。

        为了让 DataAdapter 推送更改,需要指定插入、更新和删除命令。您必须在命令配置中指定 一些 sql,但它就像 sql 语句的模板,它将更新您操作的每一行,而不必手动跟踪更改。

        配置好命令后,使用 UPDATE 方法并将 DataSet 作为参数,它将根据您的命令保留您的更改。您将不需要跟踪单个 sql 更改。

        1. 可以在here 找到配置命令的示例。
        2. 可以在here 找到调用更新的示例。

        【讨论】:

        • 我觉得这很混乱。如果我的方法只是要进行更新,为什么我还需要编写一个选择、插入和删除命令呢?它们中的任何一个都可以随时使用吗?当您想做的是更新时,编写删除语句有点奇怪。另外,这样做有性能劣势吗?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-11-03
        • 2015-01-17
        • 1970-01-01
        • 2021-07-28
        • 2012-06-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多