/// <summary>
/// 删除重复行
/// </summary>
/// <param name="table">原表</param>
private DataTable DeleteOverlapping(DataTable dtClass)
{
DataTable tempTable = dtClass.Clone(); //copy原表的表结构
ArrayList al = new ArrayList(); //新建ArrayList,把要检查的字段放入该列表中。
for (int i = 0; i < dtClass.Rows.Count; i++) //循环原来,如果把不重复的行加入到新表中,如果重复,则不处理。
{
DataRow row = dtClass.NewRow();
row["class"] = dtClass.Rows[i]["class"]; //假设要检查的列名是class,则按这样写即可。
if (!al.Contains(row["class"])) //如果要检查的列表中,不存在,则把这一行的数据加入到新表
{
tempTable.Rows.Add(row);
al.Add(row["class"]);
}
}
return tempTable; //返回删除后的DataTable
}
private void ClassList()
{
DataTable dtClass = new DataTable();
dtClass.Columns.Add(new DataColumn("class", System.Type.GetType("System.String")));
dtClass = DeleteOverlapping(dtClass);
foreach (XmlNode classNode in Doc.SelectNodes(@"//root/class"))
{
DataRow row = dtClass.NewRow();
if (classNode.Attributes["name"] != null)
{
row["class"] = classNode.Attributes["name"].Value;
}
dtClass.Rows.Add(row);
}
if (dtClass != null)
{
DropDownList1.DataValueField = "class";
DropDownList1.DataTextField = "class";
DropDownList1.DataSource = dtClass;
DropDownList1.DataBind();
}
}
/// 删除重复行
/// </summary>
/// <param name="table">原表</param>
private DataTable DeleteOverlapping(DataTable dtClass)
{
DataTable tempTable = dtClass.Clone(); //copy原表的表结构
ArrayList al = new ArrayList(); //新建ArrayList,把要检查的字段放入该列表中。
for (int i = 0; i < dtClass.Rows.Count; i++) //循环原来,如果把不重复的行加入到新表中,如果重复,则不处理。
{
DataRow row = dtClass.NewRow();
row["class"] = dtClass.Rows[i]["class"]; //假设要检查的列名是class,则按这样写即可。
if (!al.Contains(row["class"])) //如果要检查的列表中,不存在,则把这一行的数据加入到新表
{
tempTable.Rows.Add(row);
al.Add(row["class"]);
}
}
return tempTable; //返回删除后的DataTable
}
private void ClassList()
{
DataTable dtClass = new DataTable();
dtClass.Columns.Add(new DataColumn("class", System.Type.GetType("System.String")));
dtClass = DeleteOverlapping(dtClass);
foreach (XmlNode classNode in Doc.SelectNodes(@"//root/class"))
{
DataRow row = dtClass.NewRow();
if (classNode.Attributes["name"] != null)
{
row["class"] = classNode.Attributes["name"].Value;
}
dtClass.Rows.Add(row);
}
if (dtClass != null)
{
DropDownList1.DataValueField = "class";
DropDownList1.DataTextField = "class";
DropDownList1.DataSource = dtClass;
DropDownList1.DataBind();
}
}
{
DataTable tempTable = dtClass.Clone(); //copy原表的表结构
ArrayList al = new ArrayList(); //新建ArrayList,把要检查的字段放入该列表中。
for (int i = 0; i < dtClass.Rows.Count; i++) //循环原来,如果把不重复的行加入到新表中,如果重复,则不处理。
{
DataRow dr = dtClass.Rows[i];
if (!al.Contains(dr["class"]))
{
tempTable.ImportRow(dr);
al.Add(dr["class"]);
} }
return tempTable; //返回删除后的DataTable
}
例如:select distinct(列名) from 表名
删除表中的重复数据??那不如用distinct查出数据到dataset,然后删除表原有记录,再把dataset里的数据插入表.
tempTable.Clear();