比较两个数据行
本文关键字:两个 数据 比较 | 更新日期: 2023-09-27 18:21:14
我有一个数据表,里面有多行。我还有一行,我想检查这一行是否与数据表中现有的行重复。所以我试着说:
DataTable dataTable = GetTable();
if (dataTable.Rows.Count > 1)
{
for (int i = 0; i < dataTable.Rows.Count; i++)
{
var dataRow = dataTable.Rows[i];
if (dt.Rows.Contains(dataRow) && dt.Rows.Count != 0) // Giving error
continue;
dt.ImportRow(dataRow);
return dataRow;
}
}
在这里,我的dataTable
也可以是第一次空/空。
但其给出的错误为:
表没有主键。
有人能帮我吗。如果需要额外的代码,只需注释即可。
您不能在DataTable对象上添加PK吗?
我认为代码应该是这样的:
dataTable.PrimaryKey = new DataColumn[] { dataTable.Columns["Id"] };
DataTable dataTable = GetTable();
if (dataTable.Rows.Count > 1)
{
for (int i = 0; i < dataTable.Rows.Count; i++)
{
var dataRow = dataTable.Rows[i];
if (dt.Rows.Contains(dataRow) && dt.Rows.Count != 0) // Giving error
continue;
dt.ImportRow(dataRow);
return dataRow;
}
}
我假设dt
变量应该是dataTable
变量,如果您收到一个错误,告诉您表没有主键,那可能是因为您使用了错误的变量,并且确实没有主键或表与您尝试使用的变量关联。
所以我认为代码应该是这样的,而不是
DataTable dataTable = GetTable();
if (dataTable.Rows.Count > 1)
{
for (int i = 0; i < dataTable.Rows.Count; i++)
{
var dataRow = dataTable.Rows[i];
if (dataTable.Rows.Contains(dataRow) && dataTable.Rows.Count != 0) // Giving error
continue;
dataTable.ImportRow(dataRow);
return dataRow;
}
}