日期:2014-05-18  浏览次数:20811 次

如何实现批量删除
这是我代码,我这样做,还是只能删除一行,大家帮我看下哪里需要修改才能实现把选中的行都删除,实现批量删除

if(dgvsearch.SelectedRows.Count==0)
  {
  MessageBox.Show("没有选中删除行!");
  }
  else
  {
  DialogResult choice = MessageBox.Show("确认删除吗?", "确认信息", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
  for (int i = 0; i < dgvsearch.SelectedRows.Count; i++)
  {
   
  if (choice == DialogResult.Yes)
  {  
  dbhelp.numid = Convert.ToInt32(dgvsearch.SelectedRows[0].Cells["id"].Value);//把序列号ID存入dbhelp的numid里  
  string sql = string.Format("delete from govinformation where id='{0}'", dbhelp.numid);  
  try
  {
  dbhelp.conn.Open();
  SqlCommand comm = new SqlCommand(sql, dbhelp.conn);
  int result = comm.ExecuteNonQuery();
  }
  catch (Exception ex)
  {
  MessageBox.Show(ex.Message);
  }
  finally
  {
  dbhelp.conn.Close();
  }
  }
  }

------解决方案--------------------
你的dgvsearch.SelectedRows.Count是当前选中的行,肯定是1行,所以循环等于没起作用,只循环了一次。

你可以前面用checkbox,然后全选,删除,这样就行了。注意判断全删除之后,GridView绑定null不要出错。catch一下。
------解决方案--------------------
探讨
你的dgvsearch.SelectedRows.Count是当前选中的行,肯定是1行,所以循环等于没起作用,只循环了一次。

你可以前面用checkbox,然后全选,删除,这样就行了。注意判断全删除之后,GridView绑定null不要出错。catch一下。