我有一个网格视图,其中每一行都有一个复选框,所以对于所有那些被检查我想要保存在数据库中的roes我该如何实现?
我是否需要为每个数据行执行单独的数据库操作,或者我可以立即将所有行发送到数据库 我需要写一些特殊的查询吗?
或者我可以有一些临时表然后我可以立即插入所有请在这个启发我
答案 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)。