每次添加新行时都应该调用 AcceptChanges() 吗?

2024-02-03

推荐哪个

while (reader.Read())  
{
    table.Rows.Add(
            new object[] { reader[0], reader[1], reader[2], reader[3] }
    );  
    table.AcceptChanges();
}  

or

while (reader.Read())  
{
    table.Rows.Add(
            new object[] { reader[0], reader[1], reader[2], reader[3] }
    );  
}  
table.AcceptChanges();

请注意 table.AcceptChanges 的放置位置。


EDIT 1

这是代码块:

protected void Page_Load(object sender, EventArgs e)
{
    IDataReader reader = cust.GetCustomerOrderSummary("99999");
    using (DataSet ds = new DataSet())
    {
        using (DataTable table =
                new DataTable { TableName = "OrderSummary" })
        {
            DataColumn idColumn = table.Columns.Add("number", typeof(int));
            table.Columns.Add("name", typeof(string));
            table.Columns.Add("quantity", typeof(int));
            table.Columns.Add("prev_quantity", typeof(int));
            table.PrimaryKey = new DataColumn[] { idColumn };
            while (reader.Read())
            {
                table.Rows.Add(
                  new object[]{ reader[0], reader[1], reader[2], reader[3] }
                );
                table.AcceptChanges();
            }
            ds.Tables.Add(table);
            rptCustomerOrder report =
                    new rptCustomerOrder { DataSource = ds };
            ReportViewer1.Report = report;
        }
    }
}

EDIT 2
阅读MSDN文章后here http://msdn.microsoft.com/en-us/library/system.data.dataset.acceptchanges.aspx我决定根据以下语句(来自文章)将 AcceptChanges() 放置在循环之外:

在 DataTable 级别调用 AcceptChanges 会导致调用每个 DataRow 的 AcceptChanges 方法。


Calling AcceptChanges添加新行后实际上会转动DataRowState您新添加的DataRow from Added to Unchanged。如果你接受它,你可能会失去追踪新添加的行的数量以及持久性时的数量。ADO.NET将无法识别需要插入数据库中的行。因此,请明智地选择此选项,您甚至可能不需要它。

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

每次添加新行时都应该调用 AcceptChanges() 吗? 的相关文章

随机推荐

  • 如何将动态组件放入容器中

    我想创建动态组件并将这些组件的视图插入到容器中 我认为这可以通过以下方式实现视图容器引用 https angular io docs ts latest api core index ViewContainerRef class html
  • TypeError C 是未定义的数据表

    我试图将使用 ajax 获得的一些数据渲染到数据表中 但似乎我丢失了一些东西 因为它显示错误 TypeError c is undefined 我读过这篇文章 数据表类型错误 c 未定义 https stackoverflow com qu
  • 无论如何要将 Owin HTTPS 限制为 TLS 1.2?

    我想将我的 Webapi 锁定为 TLSv1 2 因此不允许使用 TLSv1 1 等 我看到了以下帖子 但它似乎只与 ASP NET Core 相关 有什么方法可以将 ASP NET Core 2 0 HTTPS 限制为 TLS 1 2 h
  • 无法使用 no_std/lang_items 编译 Rust

    我正在尝试建立一个非常类似于的项目dueboot https github com jensnockert dueboot 即嵌入式 ARM 上的 Rust 现在 我只完成了 Rust 代码的编译 但无法编译它 我基本上完全从该项目中复制了
  • IOS企业应用无法安装请稍后再试

    I know this question has been asked a lot on SO however I can ensure that my case is different I am unable to install an
  • 两点碰撞法线

    我正在尝试计算两点的碰撞法线 我需要这个碰撞响应方程来计算新的角速度和线速度 例如 当两个 2d 或 3d 盒子的角相互碰撞时 就会发生这种情况 他们的碰撞正常情况是怎样的 现在 在顶点和面碰撞的情况下 碰撞法线将只是面的法线 它是未定义的
  • 用于文件引用的c# xml代码注释

    xml代码注释中有文件引用的标签吗 该文件是一个sql脚本文件 只是想知道是否有比这样更好的方法
  • 通过 $resource angularjs 获取条件数据

    我正在使用 resource 服务进行增删改查操作 现在我想获取诸如开始日期为今天的约会之类的条件的数据 我正在通过以下方式获取所有数据 vm appointments AppointmentsService query 我的服务代码是 f
  • 过滤包含特定字符串的行

    我必须使用包含字符串的行作为标准来过滤数据框RTB 我在用着dplyr d del lt df gt group by TrackingPixel gt summarise MonthDelivery as integer sum Reve
  • 警告:文本内容不匹配。服务器:“我出去了” 客户端:“我进来了” div

    我在用着universal cookie在 Next js 项目中 这是在控制台中返回警告的简单代码 import React useState from react import Cookies from universal cookie
  • 如何在 Frama-C 中自定义机器依赖?

    我有一个 16 位 MPU 其大小与 x86 16 不同size t ptrdiff t等等 任何人都可以给我有关如何在 Frama C 中为我的 MPU 自定义机器依赖性的详细信息和明确说明吗 目前无法直接从命令行执行此操作 您必须编写一
  • SwiftUI Font 如何将 uppercased() 与 LocalizedStringKey 一起使用

    我正在尝试创建一种斜体和大写的字体样式 我还使用 LocalizedStringKey 来设置我的字符串 我尝试使用smallCaps 但这不适用于italic 如所回答HERE https stackoverflow com questi
  • LINQ-to-SQL:将 Func 转换为表达式 >

    LINQ to SQL 对我来说是一个 PITA 我们使用它与数据库进行通信 然后通过 WCF 将实体发送到 Silverlight 应用程序 一切都工作正常 直到开始编辑 CUD 实体及其相关数据 我终于能够设计出两个允许 CUD 的 f
  • 适用于 Android 设备(和 iOS)的 CouchDB 安全性

    我刚刚完成了一篇 wiki 文章和博客文章CouchDB 的安全性 http wiki apache org couchdb Security Features Overview 现在我想知道这在 Android 中是如何完成的 Andro
  • 以编程方式对数据表中的数字列进行颜色格式

    I am looking to color format each numeric column so that it shows a blue range bar depending on the range of each column
  • 权重偏左堆:自上而下版本合并的优点?

    我正在自学 它要求推理并实现一个偏向权重的左堆 这是我的基本实现 3 4 b functor WeightBiasedLeftistHeap Element Ordered Heap struct structure Elem Elemen
  • tempfile 和 mktemp 有什么区别?

    我遇到的大多数系统都有tempfile 1 and mktemp 1 存在语法差异 并且mktemp也可以创建目录 但它们似乎做同样的事情 两者有什么区别吗 为什么两者都存在 一个比另一个更标准吗 如果我只想安全地创建临时文件 是否有理由选
  • 如何默认生成的 XPS 文件的名称?

    如果用户打印报告 并且他们碰巧正在使用微软 XPS 打印机 我希望默认的文件名是有意义的 我本以为 XPS 打印机会采用打印作业的名称 并将其用作默认文件名 但事实并非如此 当我打印到该打印机时 是否有其他某种编程方式来默认生成的 XPS
  • 用户注册表没有验证码?

    我今天尝试注册 Twitter 发现他们的注册表没有验证码 表单网址是https twitter com signup https twitter com signup 我还注意到他们使用了如下所示的输入
  • 每次添加新行时都应该调用 AcceptChanges() 吗?

    推荐哪个 while reader Read table Rows Add new object reader 0 reader 1 reader 2 reader 3 table AcceptChanges or while reader