从一个excel文件导入数据到dataset,里面有重复的行,
利用ds.table[0].priamykey = new datacolumn[] { ds.table[0].column[0],ds.table[0].column[2]};
加入主键报错重复行,
请问如何利用这个错误信息,获得是哪些行重复?
利用ds.table[0].priamykey = new datacolumn[] { ds.table[0].column[0],ds.table[0].column[2]};
加入主键报错重复行,
请问如何利用这个错误信息,获得是哪些行重复?
{
DataTable dt = new DataTable();
for (Int32 i = 0; i < SourceTable.Columns.Count; i++)
{
string fieldName=SourceTable.Columns[i].Caption;
dt.Columns.Add(fieldName, SourceTable.Columns[fieldName].DataType);
}
DataRow dataRow = dt.NewRow();
foreach (DataRow dr in SourceTable.Select("", FieldName))
{
if (dataRow == null || !(ColumnEqual(dataRow[FieldName], dr[FieldName])))
{
dataRow=dr;
DataRow row = dt.NewRow();
for (int i = 0; i < dataRow.ItemArray.Length; i++)
{
row[i] = dataRow[i];
}
dt.Rows.Add(row);
}
}
return dt;
}
参考
你也可以查rowerror属性,不过这样性能很低
利用报错来获取重复行,直接,方便快截.在表中比较肯定是可以比较出来,写个两层循环或者
利用ds.select 之类的,不够爽...