当前位置:编程学习 > C#/ASP.NET >>

C# 中两个datagridview数据传递的问题

请教,我想在两个datagridview中互相能转移数据
比如有datagridview1,他的数据源来自datatable.另一个datagridview2无数据源。
当我双击datagridview1中的一行数据时,把数据转移到datagridview2中,并且datagridview中的那一行数据就没有了。请问该怎么写? --------------------编程问答-------------------- 帮顶`我只会用listview实现   --------------------编程问答-------------------- datagridview,winform的? --------------------编程问答-------------------- 是的 --------------------编程问答--------------------   private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            DataGridViewRow row = (DataGridViewRow)dataGridView1.Rows[1].Clone();
            for (int i = 0; i < dataGridView1.Columns.Count; i++)
            {
                row.Cells[i].Value = dataGridView1.Rows[1].Cells[i].Value;
            }
            dataGridView2.Rows.Add(row);
        }

两个gridview结构要一样,,未测试。。 --------------------编程问答-------------------- 把那个1换成e.RowIndex --------------------编程问答--------------------  第一个DataGridView 当窗体加载时就从数据中 添加到表中
然后当点击 第一个表中的一行数据时,双击就加到第二个表中,并且要不能重复,只是把它们的数量增加
代码以下:
       
        private void Form1_Load(object sender, EventArgs e)
        {
            SqlConnection con = new SqlConnection("server=EAABCB9752A54EE;database=MySchool;integrated security=true;");
            SqlDataAdapter da = new SqlDataAdapter("select * from Test ", con);
            DataTable dt = new DataTable();
            da.Fill(dt);
            this.dataGridView1.DataSource = dt;

  
        }

        private void dataGridView1_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
        {

        }
        DataTable dt = new DataTable();
        private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
           DataTable  dt1 = this.dataGridView2.DataSource as DataTable;
           if (dt1 == null)
           {

               //dt1.Columns.Add("商品名称", typeof(string));
               //dt1.Columns.Add("商品数量", typeof(int));
               //dt1.Columns.Add("单价", typeof(int));
               //dt1.Columns.Add("小计", typeof(int));
               DataColumn dc = new DataColumn("商品名称", typeof(string));
               dt.Columns.Add(dc);
               DataColumn dc1 = new DataColumn("商品数量", typeof(int));
               dt.Columns.Add(dc1);
               DataColumn dc2 = new DataColumn("单价", typeof(int));
               dt.Columns.Add(dc2);
               DataColumn dc3 = new DataColumn("小计", typeof(int));
               dt.Columns.Add(dc3);
               DataRow dr = dt.NewRow();
               dr["商品名称"] = this.dataGridView1[1, e.RowIndex].Value.ToString();
               dr["商品数量"] = this.dataGridView1[2, e.RowIndex].Value.ToString();
               dr["单价"] = this.dataGridView1[3, e.RowIndex].Value.ToString();
               dr["小计"] = Convert.ToInt32(dr["商品数量"]) * Convert.ToInt32(dr["单价"]);
               dt.Rows.Add(dr);
               this.dataGridView2.DataSource = dt;
           }
           else
           {
               foreach (DataRow dr in dt1.Rows)
               {
                   if (dr["商品名称"].ToString().Equals(this.dataGridView1[1, e.RowIndex].Value.ToString()))
                   {
                       dr["商品数量"] = Convert.ToInt32(dr["商品数量"].ToString()) + 1;
                       dr["小计"] = Convert.ToInt32(dr["单价"].ToString()) * Convert.ToInt32(dr["商品数量"].ToString());
                       return;
                   }
                   
               }
               DataRow dr1 = dt.NewRow();
                   dr1["商品名称"] = this.dataGridView1[1, e.RowIndex].Value.ToString();
                   dr1["商品数量"] = this.dataGridView1[2, e.RowIndex].Value.ToString();
                   dr1["单价"] = this.dataGridView1[3, e.RowIndex].Value.ToString();
                   dr1["小计"] = Convert.ToInt32(dr1["商品数量"]) * Convert.ToInt32(dr1["单价"]);
                   dt.Rows.Add(dr1);
           }
            
        }
不知道对不对 --------------------编程问答-------------------- 差不多对了 --------------------编程问答-------------------- 新建一个DataTable,在两个DataTable之间进行DataRow的移动。 --------------------编程问答-------------------- s --------------------编程问答--------------------
引用 8 楼 zhzuo 的回复:
新建一个DataTable,在两个DataTable之间进行DataRow的移动。
--------------------编程问答--------------------
引用 8 楼 zhzuo 的回复:
新建一个DataTable,在两个DataTable之间进行DataRow的移动。

同意 --------------------编程问答-------------------- 1. 读取第一个控件的一条记录的数据,
2. 将数据用程序添加到第二个控件上,
3 结构要相同才行。

www.易做图om.net
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,