网格视图行一次

时间:2010-08-27 10:13:48

标签: asp.net

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

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

或者我可以有一些临时表然后我可以立即插入所有请在这个启发我

2 个答案:

答案 0 :(得分:2)

您可以使用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。

答案 1 :(得分:1)

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

如果要一次发送所有行,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)。