110,586
社区成员
发帖
与我相关
我的任务
分享
DataSet ds;
DataTable dt1 = ds.Tables[0];
DataTable dt2 = ds.Tables[1];
DataTable dt3 = dt1.Clone();
dt3.Clear();
ds.Tables.Add(dt3,"dt3");
//重复行
for (int i = 0; i < dt1.Rows.Count; i++)
{
DataRow dr = dt1.Rows[i];
for (int j = 0; j < dt2.Rows.Count; j++)
{
DataRow dr2 = dt2.Rows[j];
for (int k = 0; k < dt1.Columns.Count; k++)
{
if (dr[k] != dr2[k])
{
break;
}
if (k == dt1.Columns.Count - 1)
{
dt3.ImportRow(dr);//存入新表
}
}
}
}
//删除表
ds.Tables.Remove(ds.Tables["b"]);
void TestDataSetDup()
{
DataSet ds = new DataSet();
//ds.Tables.Add(
DataTable dt1 = new DataTable();
dt1.Columns.Add("item1");
dt1.Columns.Add("item2");
dt1.Columns.Add("item3");
dt1.Rows.Add("a", "1", "1");
dt1.Rows.Add("b", "2", "2");
dt1.Rows.Add("c", "3", "3");
dt1.Rows.Add("a", "1", "1");
dt1.AcceptChanges();
DataTable dt2 = new DataTable();
dt2.Columns.Add("item1");
dt2.Columns.Add("item2");
dt2.Columns.Add("item3");
dt2.Rows.Add("p", "1", "1");
dt2.Rows.Add("q", "2", "2");
dt2.Rows.Add("r", "3", "3");
dt2.Rows.Add("a", "1", "1");
dt2.AcceptChanges();
ds.Tables.Add(dt1);
ds.Tables.Add(dt2);
ds.AcceptChanges();
for (int i=0;i<ds.Tables[0].Rows.Count;i++)
{
DataRow row = ds.Tables[0].Rows[i];
for (int j = i + 1; j < ds.Tables[0].Rows.Count; j++)
{
DataRow row2 = ds.Tables[0].Rows[j];
bool flag=false;
for (int m = 0; m < ds.Tables[0].Columns.Count; m++)
{
if (row[m].ToString() != row2[m].ToString())
{
flag=true;
break;
}
}
if (!flag)
{
ds.Tables[0].Rows.Remove(row2);
}
}
}
ds.Tables[0].AcceptChanges();
//查找table[0]与table[1]中的重复行
List<int> dupList = new List<int>();
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
DataRow row = ds.Tables[0].Rows[i];
for (int j = i; j < ds.Tables[1].Rows.Count; j++)
{
DataRow row2 = ds.Tables[1].Rows[j];
bool flag = false;
for (int m = 0; m < ds.Tables[0].Columns.Count; m++)
{
if (row[m].ToString() != row2[m].ToString())
{
flag = true;
break;
}
}
if (!flag)
{
//ds.Tables[0].Rows.Remove(row2);
dupList.Add(j);
}
}
}
string dupRowStr = "";
for (int i = 0; i < dupList.Count; i++)
{
if (i == 0)
dupRowStr = "表2中重复行为:" +dupList[i];
else
dupRowStr += "," +dupList[i];
}
MessageBox.Show(dupRowStr);
}
DataSet ds;
DataTable dt1 = ds.Tables[0];
DataTable dt2 = ds.Tables[1];
//重复行
for (int i = 0; i < dt1.Rows.Count; i++)
{
DataRow dr = dt1.Rows[i];
for (int j = 0; j < dt2.Rows.Count; j++)
{
DataRow dr2 = dt2.Rows[j];
for (int k = 0; k < dt1.Columns.Count; k++)
{
if (dr[k] != dr2[k])
{
break;
}
if (k == dt1.Columns.Count - 1)
{
//dt1 i位置 dt2 j位置 重复行
}
}
}
}
DataSet ds;
DataTable dt1 = ds.Tables[0];
//删除重复行
for (int i = 0; i < dt1.Rows.Count; i++)
{
DataRow dr = dt1.Rows[i];
for (int j = i + 1; j < dt1.Rows.Count; j++)
{
DataRow dr2 = dt1.Rows[j];
for (int k = 0; k < dt1.Columns.Count; k++)
{
if (dr[k] != dr2[k])
{
break;
}
if (k == dt1.Columns.Count - 1)
{
dt1.Rows.Remove(dr2);
i--;
j--;
}
}
}
}