DataTable.Merge 和 DataTable.ImportRow 不会更改 RowState

2023-12-23

我在 ADO.NET 2.0 合并/导入数据时遇到问题。我需要将数据从一个通用表更新/插入到另一个表,并且两个表都保持相同的架构。以下代码在本地运行良好,但不会对数据库进行更改:

        OleDbDataAdapter localDA = loadLocalData();            
        OleDbDataAdapter hostedDA = loadHostedData();            

        DataSet dsLocal = new DataSet();            
        localDA.Fill(dsLocal);

        DataSet dsChanges = new DataSet();
        hostedDA.Fill(dsChanges);

        dsLocal.Tables[0].Merge(dsChanges.Tables[0],false);

        localDA.Update(dsLocal.Tables[0]);

此代码片段也是如此:

        OleDbDataAdapter localDA = loadLocalData();
        OleDbDataAdapter hostedDA = loadHostedData();

        DataSet dsLocal = new DataSet();
        localDA.Fill(dsLocal);

        DataSet dsChanges = new DataSet();
        hostedDA.Fill(dsChanges);

        foreach (DataRow changedRow in dsChanges.Tables[0].Rows)
        {
            if (recordExists(dsLocal.Tables[0], changedRow["ID"]))
            {

            }
            else
            {
                dsLocal.Tables[0].ImportRow(changedRow);
            }
        }

        localDA.Update(dsLocal.Tables[0]);

当我查看已更改/附加行的 RowState 属性时,它们保持“不变”。我希望尽可能避免数据映射列,这就是我可能必须使用 NewRow() 方法并修改现有行所做的事情。


您需要为每个 DataRow 触发适当的函数。

  • DataRow.SetAdded()
  • DataRow.SetModified()

这将更新 DataRow.RowState 值。这就是 DataAdapter 用来确定哪些行需要对其执行哪些操作的依据。

如果它们类似于 .net 中的绑定数据集,那就太好了,这样它就可以为我们管理这些平凡的细节。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DataTable.Merge 和 DataTable.ImportRow 不会更改 RowState 的相关文章

随机推荐

  • 在 Windows 上使用 Xamarin Studio 构建 iOS 应用程序

    是否可以使用在 Windows 上运行的 Xamarin Studio 构建 iOS 应用程序 并将其连接到在 mac 上运行的 Xamarin ios 构建主机 The 我见过的例子 http docs xamarin com guide
  • C++ 中的正态(高斯)分布函数

    我需要知道一种方法来获得 50 个数字的高斯分布 我知道 Boost 库 它可以生成随机数 就我而言 我不需要随机数 我需要 50 个数字的正态分布 我如何在 C 中做到这一点 从 C 11 开始 标准库中提供了正态 高斯 分布 http
  • 如何将通用委托参数传递给 .NET 2.0 中的方法

    我有一个带有委托声明的类 如下 Public Class MyClass Public Delegate Function Getter Of TResult As TResult the following code works Publ
  • 服务器到服务器 > 检索远程 zip 文件并将其解压到本地服务器目录

    我在服务器 B 上有一个 wp 插件文件 其目的是从远程服务器 A 检索 zip 文件 服务器 B 收到 zip 文件后 应提取内容并将文件复制到服务器 B 上的特定文件夹中 覆盖任何现有文件 我从下面的文件中借用了一些代码 该文件使用上传
  • 使用 Android NDK 编译原生 C++ 共享对象

    我已经生成了一个 so在 Linus 上通过 C 文件并得到 so现在生成文件我已经交叉编译了这个 so归档Android ARM所以我必须通过编译它Android NDK这样新生成的 so可以在我的android项目中使用 那么任何人都可
  • TRY_PARSE 与 TRY_CONVERT

    我目前正在学习我的 MCSA 数据平台 我错误地回答了以下问题 我正在寻找解释为什么我的答案是错误的 因为测试中的解释没有多大意义 您有一个名为 AuditTrail 的表 用于跟踪对其他表中数据的修改 AuditTrail 表由许多进程更
  • 我可以在java中使用方法链接的抽象构建器类而不执行不安全操作吗?

    我试图为某些构建器类提供一个抽象基类 以便我可以轻松地在构建器实现之间重用代码 我希望我的构建器支持方法链接 因此方法必须返回最具体类型的 this 实例 我想我可以用泛型来做到这一点 不幸的是 我无法在不使用不安全操作的情况下做到这一点
  • 生成器不是迭代器吗?

    我有一个生成器 一个产生东西的函数 但是当试图将它传递给gensim Word2Vec我收到以下错误 类型错误 您不能将生成器作为句子参数传递 尝试迭代器 生成器不是迭代器的一种吗 如果没有 我如何从中创建一个迭代器 查看库代码 它似乎只是
  • 范围为“class”的 Pytest 装置不适用于“setup_class”方法

    我目前正在使用pytest addoption运行我的 API 测试 因此测试应该针对用户在命令行上使用的环境运行 在我的测试文件中 我试图实例化UsersSupport只上一次课 就通过了env争论 我的代码 测试 py import p
  • NSMutableData 的 mutableBytes 和 bytes 方法之间的区别

    两者都返回相同的指针 我知道 bytes属于NSData 为什么NSMutableData介绍 mutableBytes 是否只是为了代码清晰 以便更明显地访问可变数据 使用哪一个真的很重要吗 NSMutableData mydata NS
  • 使用ExternalProject_Add将Opus包含在Android中

    这可能很简单 我有一个使用 NDK 的 Android 项目 我想包括opus https opus codec org downloads 本机代码中的源代码 我尝试使用 CMake 的ExternalProject Add 属性 但我的
  • ASP.Net WebForms 路由 多个目的地的单一路由

    我正在考虑为我计划创建的新网站设置数据库路由 我一直在查看以下有关使用数据库中的FriendlyUrls 的教程 http www asp net web forms tutorials aspnet 45 getting started
  • 在 C 扩展中释放全局 VM 锁而不使用其他函数

    我不明白为什么在 Ruby C API 中释放或获取 GVL 时需要另一个间接级别 Both rb thread call without gvl and rb thread call with gvl 需要一个只接受一个参数的函数 但情况
  • DataTable 内的 Markdown 正在其周围添加段落

    当 DashTable 中使用 markdown 时 需要额外增加一个 p 添加标签使单元格和实习生所有行变大 import dash from dash import dash table app dash Dash app layout
  • 在三星上,Compose AlertDialog 始终采用全宽

    在我的配备 One UI 5 0 和 Android 13 的三星 Galaxy S22 上 撰写 AlertDialog 始终占据全宽 在其他设备上它的工作方式与预期一致 Compose版本是1 3 1 您只需下载即可重现此内容 我怀疑这
  • 为什么我的 WPF 应用程序禁用了拖放功能(即使当 AllowDrop 为 true 时)?

    我的 WPF 应用程序禁止从 Windows 资源管理器中删除文件 并显示停止标志光标 我尝试在主窗口和包含的控件上将AllowDrop属性 UIElement祖先的属性 设置为true 但完全没有运气 没有触发拖放事件 有什么想法或建议来
  • 区分具有未知功能的产品 - sympy

    我尝试了各种搜索 但找不到一个好的谷歌字符串来得出正确的结果 我有以下形式的产品 y x f x 其中 f 是 x 的未知函数 我希望 sympy 对 y 相对于 x 进行微分 有谁知道我该怎么做 怎么样 gt gt gt x sympy
  • jQuery .trigger('click') 在间隔函数内?

    这是一个改写的问题here https stackoverflow com questions 5031019 stuck on weird jquery error 经过一些测试后 我隔离了问题 但没有解决它的线索 无需阅读上一个问题 这
  • 为什么线程过程应该是静态的或成员函数

    为什么线程过程应该是静态的或成员函数 有什么正当理由吗 非静态成员变量有一个隐式的this编译器内部传递的参数 You have ClassInQuestion void threadFunc int 并且编译器内部创建了一个函数 void
  • DataTable.Merge 和 DataTable.ImportRow 不会更改 RowState

    我在 ADO NET 2 0 合并 导入数据时遇到问题 我需要将数据从一个通用表更新 插入到另一个表 并且两个表都保持相同的架构 以下代码在本地运行良好 但不会对数据库进行更改 OleDbDataAdapter localDA loadLo