【问题标题】:grid view rows at once一次网格视图行
【发布时间】:2010-08-27 18:30:22
【问题描述】:

我有一个网格视图,其中每一行都有一个复选框,所以对于所有被选中的 roes,我想保存在数据库中,我该如何实现?

我是否需要为每个数据行执行单独的数据库操作,或者我可以一次将所有行发送到数据库 我需要写一些特殊的查询吗?

或者我可以有一些临时表然后我可以一次插入所有请告诉我这个

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    您可以使用 for 语句或 foreach 语句来执行此操作。

    遍历每一行

    foreach (DataGridViewRow dr in myDataGridView.Rows)
    {
          if(dr.Cells[0].Value != null) //Cells[0] Because in cell 0th cell we have added checkbox
          {
              //Do something with the row
          }     
    
    }
    

    取自http://www.dotnetspark.com/kb/151-add-checkbox-inside-datagridview-windows.aspx

    但如果我们谈论超过 100 或 200 行,您应该使用 svanryckeghem 提到的机制或 BULK INSERT。

    【讨论】:

      【解决方案2】:

      这可能取决于您使用的数据库引擎。

      如果您想一次发送所有行,SQL Server 支持 XML 输入参数。您可以将选定的行转换为 XML 文档,将其发送到存储过程,然后让该过程从那里插入行。

      SQL Server 2008 甚至支持表值参数 (http://msdn.microsoft.com/en-us/library/bb510489.aspx)。然后,您可以将 DataTable 对象传递给您的存储过程 (http://msdn.microsoft.com/en-us/library/bb675163.aspx)。

      【讨论】:

      • 不,我正在使用简单的参数化查询,它是 sql server 2005 和框架工作 2.0 我使用 foreach 的问题我会找到所有控制但我将如何一次将所有检查的行保存到数据库中
      • 如果需要,来自 .NET 的查询文本可以包含多个语句 - 所以这可以是另一种方式。另一种方法是在数据集中创建更改集,然后使用 DataAdapter 将这些更改一起刷新。
      猜你喜欢
      • 1970-01-01
      • 2020-09-28
      • 2011-10-19
      • 2015-12-22
      • 1970-01-01
      • 1970-01-01
      • 2012-04-15
      • 2014-09-23
      • 1970-01-01
      相关资源
      最近更新 更多