zoukankan      html  css  js  c++  java
  • DataGridView删除多行选中数据

    思路是找到最先选择和最后选择到的行 ,弄一个for循环,根据这些行的索引值在执行数据的删除.

    我这里用了EF.

                DialogResult result = MessageBox.Show("确定删除吗?", "删除", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

                if (result == DialogResult.Yes)

                {
                    //选中第一行的索引
                    var first = dataGridView1.Rows.GetFirstRow(DataGridViewElementStates.Selected);
                    //选中最后一行的索引
                    var end = dataGridView1.Rows.GetLastRow(DataGridViewElementStates.Selected);
                    for (int i = first; i <= end; i++)
                    {
                        int p_id = int.Parse(this.dataGridView1.Rows[i].Cells["u_id"].Value.ToString());             
                        //1.0 EF 推荐删除方式 - 先查,再删
                        userinfo gf = db.userinfo.Where(u => u.u_id == p_id).FirstOrDefault();
                        //1.2 将实体对象删除(就是将 容器中的 代理对象的 State改成 Deleted)
                        db.userinfo.Remove(gf);
                    }
                    //1.3 将EF容器里所有的对象 根据 State 属性值,生成不同sql语句,更新到数据库
                    db.SaveChanges();
                    MessageBox.Show("OK");
                }
                else
                {
                    return;
                }

    PS:

    DataGridView里的列有combox的话是不让你FullRowSelect=true的,这时候 

    if(DataGridView.FullRowSelect=false)

    {

    switch(操作方法)

    {

     case"点那个DataGridView中的行标题的列":

     return正常的起始和终止索引值 

    break; 

     case"":

     return有问题的起始和终止索引值 --都是-1

     break; 


    然后今晚博客的编辑器好像抽风了,希望更新维护之后能换个好点的编辑器吧. 

  • 相关阅读:
    WCF 客户端调用几种方式
    Mes首检确认统计的存储过程
    C#调用webService的几种方法
    负载均衡SESSION同步总结
    CCF201604-3 路径解析(解法三)(90分)
    CCF201604-3 路径解析(解法三)(90分)
    CCF201604-3 路径解析(解法二)(100分)
    CCF201604-3 路径解析(解法二)(100分)
    CCF201604-3 路径解析(100分)
    CCF201604-3 路径解析(100分)
  • 原文地址:https://www.cnblogs.com/zeusro/p/3572646.html
Copyright © 2011-2022 走看看