更新批量数据

时间:2010-04-02 09:58:24

标签: asp.net gridview transactions insert

我在asp .net中使用GridView并使用edit命令字段属性编辑数据(我们知道更新编辑后的行,我们自动更新数据库),我想使用事务(使用begin to commit语句 - 包括回滚)在数据库中提交此更新查询,在单击某个按钮后(例如,在某些事件之后),不会自动将编辑后的数据从网格直接插入或更新到DB ...所以我想将它们保存在临时某处(甚至许多已编辑的行 - 不只是一行)然后确认事务 - 更新数据库中的真实表...

欢迎任何建议......

我使用了一些很好的链接,但非常有用,例如: http://www.asp.net/learn/data-access/tutorial-63-cs.aspx http://www.asp.net/learn/data-access/tutorial-66-cs.aspx 等...

2 个答案:

答案 0 :(得分:1)

第一种方式: 创建将包含数据库对象(DataTable或映射对象)的会话变量。 GridView应该使用此实例,而不是将数据发送到数据库。 编辑完成后,您可以从会话中获取对象并以通常的方式保存。

第二种方式: 我将使用javascript收集客户端上的所有更改,同时将其编辑为对象数组(每个对象都是单独的行)。 编辑完成后,您可以从集合中创建json字符串并将其传递给服务器。 如果您的json对象配置与服务器类相同,则可以使用JavaScriptSerializer将字符串反序列化为对象集合。 之后,您可以按照通常的方式保存对象。

答案 1 :(得分:1)

那么,

您可以将编辑后的数据存储在会话中的DataTable中。然后将此数据表作为批量插入传递到数据库中。此选项有2个选项

  1. 如果您使用的是SQL Server 2005,则可以使用OpenXML实现此目的,正如我所说here
  2. 如果您使用的是SQL Server 2008,则可以像我一样使用表变量here
  3. 我希望它有所帮助