2010-08-27 50 views
2

我有一个网格视图,其中每一行都有一个复选框,因此所有那些被检查我想保存在数据库中的那些roes我怎么能实现这个?网格视图行一次

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

或者我可以有一些临时表的话,我可以插入一次全部请赐教这个

回答

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)。

+0

没有我使用简单的参数化查询,这是SQL Server 2005和FRAM工作2.0 我使用的foreach我会发现所有的控制,但我将如何保存所有检查行数据的基础上,在一次从.NET – NoviceToDotNet 2010-08-27 10:29:03

+0

查询文本可以包含问题如果需要多个语句 - 所以这可以是另一种方法。 另一种方法是在数据集中创建变更集,然后使用DataAdapter将这些变更清理到一起。 – VinayC 2010-08-27 10:30:37

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。