C# 如何将datagridview1行发送到datagridview2
我有两个datagridviewC# 如何将datagridview1行发送到datagridview2,c#,C#,我有两个datagridviewdatagridview1和datagridview2datagridview1从db获取所有值,工作正常。我想要的是;在某些情况下,我需要将datagridview1行发送到datagridview2 我的代码是这样的 DataTable table = new DataTable(); dataGridView1.DataSource = table; baglantı = new SqlConnection(); baglantı.ConnectionStr
datagridview1
和datagridview2
datagridview1
从db获取所有值,工作正常。我想要的是;在某些情况下,我需要将datagridview1
行发送到datagridview2
我的代码是这样的
DataTable table = new DataTable();
dataGridView1.DataSource = table;
baglantı = new SqlConnection();
baglantı.ConnectionString =
"Server=asdsa;Database=asdsasd;User Id=asdsa;password=adsadsas";
baglantı.Open();
komut = new SqlDataAdapter("SELECT * FROM table" , baglantı);
ds = new System.Data.DataSet();
komut.Fill(ds, "table");
dataGridView1.DataSource = ds.Tables[0];
dataGridView1.Columns[0].HeaderText = "SATICI ADI";
dataGridView1.Columns[1].HeaderText = "ALICI ADI";
dataGridView1.Columns[2].HeaderText = "URUN";
dataGridView1.Columns[3].HeaderText = "ADET";
dataGridView1.Columns[4].HeaderText = "SATICI PUANI";
dataGridView1.Columns[5].HeaderText = "ALICI PUANI";
dataGridView1.Columns[6].HeaderText = "TARIH";
dataGridView2.Columns.Add("Column", "SATICI ADI");
dataGridView2.Columns.Add("Column", "ALICI ADI");
dataGridView2.Columns.Add("Column", "URUN");
dataGridView2.Columns.Add("Column", "ADET");
dataGridView2.Columns.Add("Column", "SATICI PUANI");
dataGridView2.Columns.Add("Column", "ALICI PUANI");
dataGridView2.Columns.Add("Column", "TARIH");
int i = 0;
foreach (DataGridViewRow row in dataGridView1.Rows)
{
if (i != 20496)
{
if (dataGridView1.Rows[i].Cells[0].Value.ToString() == dataGridView1.Rows[i + 1].Cells[0].Value.ToString() && dataGridView1.Rows[i].Cells[1].Value.ToString() == dataGridView1.Rows[i + 1].Cells[1].Value.ToString() && dataGridView1.Rows[i].Cells[2].Value.ToString() == dataGridView1.Rows[i + 1].Cells[2].Value.ToString() && dataGridView1.Rows[i].Cells[3].Value.ToString() == dataGridView1.Rows[i + 1].Cells[3].Value.ToString() && dataGridView1.Rows[i].Cells[4].Value.ToString() == dataGridView1.Rows[i + 1].Cells[4].Value.ToString() && dataGridView1.Rows[i].Cells[5].Value.ToString() == dataGridView1.Rows[i + 1].Cells[5].Value.ToString() && dataGridView1.Rows[i].Cells[6].Value.ToString() == dataGridView1.Rows[i + 1].Cells[6].Value.ToString())
{
CurrencyManager currencyManager1 = (CurrencyManager)BindingContext[dataGridView1.DataSource];
currencyManager1.SuspendBinding();
dataGridView1.Rows[i].Visible = false;
currencyManager1.ResumeBinding();
i = i + 1;
}
else
{
i = i + 1;
}
}
}
这种情况是,
dataGridView1.Rows[i].Visible = false;
在这种情况下,我需要将dataGridView1.Rows[I]发送到dataGridView2.Rows当您说“发送”时,您的意思是将一行从
dataGridView1
添加到dataGridView2
?您是否考虑过将
dataGridView2
绑定到BindingList
您可以Add()
到?从您之前的评论中,您可以轻松地直接从数据库中获取不同或重复的值,这将更快
此外,查找重复值的逻辑不正确,您正在比较每个连续行的值,但循环需要两个值只需使用
datagridView2.rows.Add(dataGridview1.rows[i].Cell[0].value,dataGridview1.rows[i].Cell[1].value,…)
İt将修复您的问题
dataGridView2.Rows.Add(dataGridView1.Rows[i])代码>?它表示“提供的行已经属于DataGridView控件。”定义“发送”!它是复制还是移动?将表2
添加到您的数据集中,不带任何行,将其绑定到dataGridView2
,然后将适当的行添加到表2
,并将其从表中删除(旧的)。当您说“发送”时,您的意思是表面上将一行从dataGridView1添加到dataGridView2吗?是的,我想看看你的其他评论,如果只是表面的,我想你必须从旧的DataGridViewRow
中创建一个新的Add()
。在我的代码中,我试图找到重复的值,当我找到它时,我使用这个代码dataGridView1.Rows[I].Visible=false;因此,当我找到这个重复值时,我需要在datagridview2上查看,因为datagridview1是不同的值,datagridview2是重复的值