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 --------------------编程问答-------------------- --------------------编程问答--------------------
同意 --------------------编程问答-------------------- 1. 读取第一个控件的一条记录的数据,
2. 将数据用程序添加到第二个控件上,
3 结构要相同才行。
www.易做图om.net
补充:.NET技术 , C#