现在我有DataGridView,其中有一列是checkbox列。我通过选中的checkbox行的主键,到数据库中取出对应的内容,显示在另一个datagridview中。如何利用选中的数据的主键?用数组?请高手附代码说明一下,谢谢。

解决方案 »

  1.   

    用数组啊  好   首先你取这些选中的行要取好  它好像有时候是1有时候是true   
    用数组  然后数据库语句就 select .... primarykey in (选中行的主键值) 绑定datagridview ok
      

  2.   

    dawnvear,您好,你说的思路正是我的思路,不过,不好意思,我真的不会写这样的C#语句,不知您能否赐教?如果可以,写一个Demo好么?
      

  3.   

    for循环遍历下gv,
    string 集合=“”;
    for(int i=0;i<gv.rows.cout;i++)
    {
        if((check)gv.rows[i].findControl("Checkbox")) //判断是否选中
        {
           if(集合=="")
           { 
               集合=gv.row[i]["主键"].tostring();
            }
            else
            {
              集合=","+gv.row[i]["主键"].tostring();
            }
        }
    }if(集合!="")
    {
        dataset ds=getdataset(select * from 表 where 主键 in ("+主键集合+"));
    }
    另一个datagridview.datasourse=ds;
    另一个datagridview.databind();
       
      

  4.   


    List <string> list = new List <string>(); 
    for(int i = 0;i <dataGridview1.Rows.Count -1;i++) 

      if(datagridview1.Rows[i].Cells["checkbox列名"].Value == null) 
      { 
          contiue; 
      } 
      if((bool)datagridview1.Rows[i].Cells["checkbox列名"].Value) 
      { 
            list.Add(datagridview1.Rows[i].Cells["ID列"].Value.ToString()) 
      } 
    }/*这是把它ID取出来,其他的操作...........*/
      

  5.   

      if(集合=="") 
          { 
              集合=gv.row[i]["主键"].tostring(); 
            } 
          else 
            { 
              集合=","+gv.row[i]["主键"].tostring(); 
            }     } 是因为你有可能是选择多个的,这里是收集你选择的键值和ID