C# 比较两个DataGridView
我在一个表单中有两个DataGridView。第一个,C# 比较两个DataGridView,c#,winforms,datagridview,C#,Winforms,Datagridview,我在一个表单中有两个DataGridView。第一个,datagridview1包含列和数据: name IC EMAIL TELEPHONE ------------------------------------------------------ rOO 898989096677 AB@YAHOO.COM 018-9097878 datagridview2 name IC EMA
datagridview1
包含列和数据:
name IC EMAIL TELEPHONE
------------------------------------------------------
rOO 898989096677 AB@YAHOO.COM 018-9097878
datagridview2
name IC EMAIL TELEPHONE ID
-----------------------------------------------------------
rOO 898989096677 AB@YAHOO.COM 018-9097878 8787
我想询问有关如何比较两个datagridview的帮助,如图所示,我想比较一个datagridview到另一个datagridview的四列,看看是否有匹配的结果。例如,
roo
名称是否和另一个datagridview匹配,我希望将id(8787)中的值发送到另一个datagridview。假设您使用包含示例中这4个属性的相同对象填充两个DataGrid。如果在第二个数据网格中有匹配的对象,则必须根据过滤器检查第一个数据网格中的选定行。使用Linq。如果是这样,则将所选项目的数据从第一个datagrid复制到第二个datagrid中的匹配元素中。我很惊讶,您将需要手动执行所有这些步骤,因为没有方法可以比较两个数据网格,您只需设置一些过滤器,工作就完成了。你会有一些工作要做,但并不难。祝你好运。有一个非常简单的解决方案来比较两个datagridview并在第三个datagridview中显示它们的结果
for (int i = 0; i < dtView1.Rows.Count; i++)
{
for (int j = 1; j < dtView1.Columns.Count; j++)
{
if ((dtView1.Rows[i][j]) == (dtView2.Rows[i][j]))
{
// here you can add your own logic
}
else
{
// here you can add your own logic
}
}
for(int i=0;i
|史蒂夫的答案不正确,无法编译 以下是我的解决方案:
int x = 0;
int y = 0;
int i = -1;
int z = 0;
foreach (DataGridViewRow row in dataGridView1.Rows)
{
i++;
if ((dataGridView1.Rows[i].Cells[i].Value) == (dataGridView2.Rows[z].Cells[i].Value))
{
x++;
}
else
{
y++;
}
if (z < dataGridView2.Rows.Count)
{
z++;
}
if(z == dataGridView2.Rows.Count)
{
z--; //subtract 1 from the total count because the datagrid is 0 index based.
}
MessageBox.Show("Matched: " + x.ToString() + "\r\n" + "Not Matched: " + y.ToString());
intx=0;
int y=0;
int i=-1;
int z=0;
foreach(dataGridView1.Rows中的DataGridViewRow行)
{
i++;
if((dataGridView1.Rows[i].单元格[i].值)==(dataGridView2.Rows[z].单元格[i].值))
{
x++;
}
其他的
{
y++;
}
if(z
datagrid上的foreach循环将在每一行中循环,然后您可以选择一个单元格,甚至可以选择要比较的单元格。此代码有点长,我相信它可以简化,但是它可以完成这项工作
目前,这将检查datagrid 2中的每一行是否与datagrid 2中的匹配,仅在单个列上
它用于记住datagrid的导入是基于0索引的。datagrid的Count属性给出一个[1]基于索引的计数,因此我们需要减去datagrid 2上的最后一次迭代。具体问题是什么?您知道如何访问单元格中包含的值?您知道如何比较值?您知道如何设置值?如果两个datagrid视图都指向同一数据源,则应该同步。最好描述您的要求从用户的角度来看。