【发布时间】:2010-08-27 18:30:22
【问题描述】:
我有一个网格视图,其中每一行都有一个复选框,所以对于所有被选中的 roes,我想保存在数据库中,我该如何实现?
我是否需要为每个数据行执行单独的数据库操作,或者我可以一次将所有行发送到数据库 我需要写一些特殊的查询吗?
或者我可以有一些临时表然后我可以一次插入所有请告诉我这个
【问题讨论】:
标签: asp.net
我有一个网格视图,其中每一行都有一个复选框,所以对于所有被选中的 roes,我想保存在数据库中,我该如何实现?
我是否需要为每个数据行执行单独的数据库操作,或者我可以一次将所有行发送到数据库 我需要写一些特殊的查询吗?
或者我可以有一些临时表然后我可以一次插入所有请告诉我这个
【问题讨论】:
标签: asp.net
您可以使用 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。
【讨论】:
这可能取决于您使用的数据库引擎。
如果您想一次发送所有行,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)。
【讨论】: