在gridview中查询数据

时间:2013-03-22 12:19:46

标签: c# .net gridview

我正在用c#开发Windows应用程序。

我有一个gridview,里面有大约4万条记录。

在那个gridview中我有复选框。

我只想更新那些经过检查的记录。

我为它编写了以下代码>>

for (int i = 0; i < gvTradeFile.Rows.Count; i++)
            {

                try
                {
                    DataGridViewCell cell = gvTradeFile.Rows[i].Cells[0];
                    bool check = (bool)cell.Value;

                    if (check)
                    {
                        try
                        {
                            con.Open();
                            cmd = new SqlCommand("update tradeFile set Party_Code='" + txtTransferPartyCode.Text + "' where Party_Code='" + gvTradeFile.Rows[i].Cells[1].Value.ToString() + "' and TradeNo='" + gvTradeFile.Rows[i].Cells[6].Value.ToString() + "' and Sauda_Date='" + gvTradeFile.Rows[i].Cells[13].Value.ToString() + "' and OrderNo='" + gvTradeFile.Rows[i].Cells[14].Value.ToString() + "'", con);
                            cmd.ExecuteNonQuery();
                            con.Close();
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.Message);
                        }
                        finally
                        {
                            con.Close();
                        }
                    }



                }
                catch (Exception ex)
                {
                }
            }

在此,如果我们查看for loop我正在处理网格中的每一行。

是否有任何特定的技术可以直接获取for循环中的Checked行[通过网格中的复选框]?

上面的代码工作正常,但由于每一行都被检查,exe正在被绞死。

请帮帮我。

3 个答案:

答案 0 :(得分:1)

我不太确定,但我认为你无法获得任何返回已检查行的gridview函数。

但是,可以手动执行此操作,方法是保持记录选中gridview复选框的哪一行。然后根据您维护的列表更新数据库。

答案 1 :(得分:1)

我认为在复选框chek事件中,如果选中复选框,则应该维护数据表或字典,然后批量更新数据库。您可以谷歌进行批量更新

答案 2 :(得分:1)

我可以想到2个选项。

  1. 您可以将保存添加到新主题,然后让您的同事/客户认为已保存或显示“保存”图形。

  2. 一次将整个事物拆分为1000条记录。这样,你只显示第一个1k,编辑,保存。然后显示下一个1k,编辑,保存!这将减少开销。