!gridview选择行,怎么在另一个gridview中添加

求助!!gridview选择行,如何在另一个gridview中添加
本人是个刚入门的新手,请教如何在一个gridview中选中一行 在另一gridview中添加该行,选中另一行时能增加行,而不是覆盖掉,同时如果选择的行已经在另一gridview中存在的话,就不添加。
下面是我gridview1中的SelectedIndexChanged代码 但这样gridview2只能显示当前选中的行,跪求大神帮忙,最好能详细点~~万分感谢
  
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
    {


        int pk = Convert.ToInt32(GridView1.DataKeys[GridView1.SelectedIndex].Value.ToString());  //取得主键值


        DataTable ds = DB.ExcuteDataTable("select * from wupin where id='" + pk + "'");

            this.GridView2.DataSource = ds;

            this.GridView2.DataBind();
        }


------解决思路----------------------
list<int> lstid=new list<int>();
list<test> getData=new list<test>();
foreach(var item in lstid)

 循环去查下记录然后放到相应的datable之类里面然后再绑定另一个GridView
 getData.add(添加查询的记录) 

public class test

public string name{get;set;}
public int id{get;set;}

大体如上。参考下吧
------解决思路----------------------
引用:
Quote: 引用:

你这个根本没有什么添加,数据过滤而已。
所选择的到记录的主键放在一个集合中,以这个集合去搜索数据库表。得到的记录再显示于另一个GridView中即可。

我试过用list<int>收集主键 ,但如何通过list去查询出记录呢? 能否有具体的代码解释下,万分感谢~~~



参考这个经典:
http://www.cnblogs.com/insus/archive/2012/11/06/2757950.html
------解决思路----------------------

通过文本方式也简单,
    protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
        {          
           string s1=GridView1.SelectedRow.Cells[1].Text;//此为你要得到的选中行的第1列的数据 
           string s2 = GridView1.SelectedRow.Cells[2].Text;//此为你要得到的选中行的第2列的数据 
           StreamWriter sw = File.AppendText(Server.MapPath("1.txt")); 
           sw.WriteLine(s1+" "+s2);
           sw.Flush();
           sw.Close();
        }

   protected void Button1_Click(object sender, EventArgs e)
        {
          
            DataTable dt = new DataTable();          
            dt.Columns.Add("aa", typeof(String));
            dt.Columns.Add("bb", typeof(String));          
            //读入文件
            using (StreamReader reader = new StreamReader(Server.MapPath("1.txt"), Encoding.Default))
            {              
                while (!reader.EndOfStream)
                {                
                    string[] data = reader.ReadLine().Split(' ');//每行数据之间有一个空格                 
                    DataRow dr = dt.NewRow();
                    dr[0] = data[0];
                    dr[1] = data[1]; 
                    dt.Rows.Add(dr);
                }
            }       
            this.GridView2.DataSource = dt;
            GridView2.DataBind();
        }