Datatable中的记录去重 Datatable中有两个字段 a ,b 数据记录如下: a b 56路 1 18路 3 21路 6 56路 7 21路 9 我想写个c#程序把 a字段中相同的给去掉,如两个56路去掉一个。我是c#菜鸟 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://www.w3school.com.cn/sql/sql_distinct.asp在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。关键词 DISTINCT 用于返回唯一不同的值。 DISTINCT 是在SQL查询的时候去楼主问的是 要在datetable中 对象中去吧关注 对!我要的是在datatable对象去重! 还有sql中distinct对我说的情况是无效的! 谢谢各位!我的问题解决了!我用的是sql语句,是找sql高手重新写的语句没有用到distinct using System.Text;StringBuilder sb = new StringBuilder();for(int i=dt.Rows.Count-1;i>=0;i--){ //判断是否包含 if(sb.ToString().Contains(dt.Rows[i]["a"].ToString())) { dt.Rows.RemoveAt(i);//移除该行 } else { //将该行的a字段的值加到sb sb.Append(dt.Rows[i]["a"].ToString());); }}以上代码是手打的,错误难免.希望对lz有帮助 是啊,用SQL语句的distinct去剔除某列中出现的重复值,不是更方便吗?我还以为要用C#程序呢杯具了 DataTable dt = new DataTable(); for(int i=0;i<dt.Rows.Count-1;i++) for(int j=0;j<dt.Rows.Count;j++) { if (dt.Rows[i][0].ToString() == dt.Rows[j][0].ToString()) { dt.Rows[j].Delete(); dt.AcceptChanges(); } } 用sql中distinct解决不了我的问题,我找人重新写的sql语句没有用到distinct。我正好需要咋c#中解决的办法呢,就是为了学习一下!谢谢了,研究一下你的代码,呵呵! public static void datatablel() { DataTable dt = new DataTable(); dt.Columns.Add( "CorpID ", typeof(int)); dt.Rows.Add(1); dt.Rows.Add(2); dt.Rows.Add(3); dt.Rows.Add(3); dt.Rows.Add(2); for (int i = 0; i < dt.Rows.Count - 1; i++) for (int j = 0; j < dt.Rows.Count; j++) { if (dt.Rows[i][0].ToString() == dt.Rows[j][0].ToString()) { dt.Rows[j].Delete(); dt.AcceptChanges(); } } Console.WriteLine(dt); Console.ReadKey(); }这是我写代码,上面那位美女,怎么样才能把datatable中的值给显示到控制台呢? DataTable dt = new DataTable(); for(int i=0;i<dt.Rows.Count;i++) for(int j=0;j<dt.Columns.Count;j++) { Console.WriteLine(dt.Rows[i][j]); } public static void datatablel() { DataTable dt = new DataTable(); dt.Columns.Add( "CorpID ",typeof(int)); dt.Rows.Add(1); dt.Rows.Add(2); dt.Rows.Add(3); dt.Rows.Add(2); dt.Rows.Add(3); dt.Rows.Add(4); dt.Rows.Add(4); dt.Rows.Add(5); dt.Rows.Add(6); for (int i = 0; i < dt.Rows.Count; i++) { for (int j =i + 1; j < dt.Rows.Count; j++) { if (dt.Rows[i][0].ToString() == dt.Rows[j][0].ToString()) { Console.WriteLine(dt.Rows[j][0]); dt.Rows[j].Delete(); dt.AcceptChanges(); } } Console.WriteLine(dt.Rows[i][0]); } Console.ReadKey(); }这是我改进11楼得代码,这个代码才是去重记录的,希望相互学习一下! datagridview能实现下面功能吗? 怎么跳出二层方法? WinForm应用程序图标设置 C# 反射 如何获取一个程序集的所有非托管DLL HttpWebRequest的Post问题 VB的转学C# 请教两条简单语句的意思(C#2.0) 兄弟们来帮忙看看啊。调用外部dll,且该dll函数中带有指针 大家谈谈委托和使用委托实现事件处理的原理。 水晶报表数据更新问题 图片缩小后再放大,然后就变得很模糊了,请问怎么办 C#调用Wininet的相关问题,在线等!
在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。关键词 DISTINCT 用于返回唯一不同的值。
楼主问的是 要在datetable中 对象中去吧关注
StringBuilder sb = new StringBuilder();
for(int i=dt.Rows.Count-1;i>=0;i--)
{
//判断是否包含
if(sb.ToString().Contains(dt.Rows[i]["a"].ToString()))
{
dt.Rows.RemoveAt(i);//移除该行
}
else
{
//将该行的a字段的值加到sb
sb.Append(dt.Rows[i]["a"].ToString());
);
}
}以上代码是手打的,错误难免.希望对lz有帮助
DataTable dt = new DataTable();
for(int i=0;i<dt.Rows.Count-1;i++)
for(int j=0;j<dt.Rows.Count;j++)
{
if (dt.Rows[i][0].ToString() == dt.Rows[j][0].ToString())
{
dt.Rows[j].Delete();
dt.AcceptChanges();
}
}
DataTable dt = new DataTable();
dt.Columns.Add( "CorpID ", typeof(int));
dt.Rows.Add(1);
dt.Rows.Add(2);
dt.Rows.Add(3);
dt.Rows.Add(3);
dt.Rows.Add(2);
for (int i = 0; i < dt.Rows.Count - 1; i++)
for (int j = 0; j < dt.Rows.Count; j++)
{
if (dt.Rows[i][0].ToString() == dt.Rows[j][0].ToString())
{
dt.Rows[j].Delete();
dt.AcceptChanges();
}
} Console.WriteLine(dt);
Console.ReadKey();
}
这是我写代码,上面那位美女,怎么样才能把datatable中的值给显示到控制台呢?
DataTable dt = new DataTable();
for(int i=0;i<dt.Rows.Count;i++)
for(int j=0;j<dt.Columns.Count;j++)
{
Console.WriteLine(dt.Rows[i][j]);
}
DataTable dt = new DataTable();
dt.Columns.Add( "CorpID ",typeof(int));
dt.Rows.Add(1);
dt.Rows.Add(2);
dt.Rows.Add(3);
dt.Rows.Add(2);
dt.Rows.Add(3);
dt.Rows.Add(4);
dt.Rows.Add(4);
dt.Rows.Add(5);
dt.Rows.Add(6); for (int i = 0; i < dt.Rows.Count; i++)
{
for (int j =i + 1; j < dt.Rows.Count; j++)
{
if (dt.Rows[i][0].ToString() == dt.Rows[j][0].ToString())
{
Console.WriteLine(dt.Rows[j][0]);
dt.Rows[j].Delete();
dt.AcceptChanges();
}
}
Console.WriteLine(dt.Rows[i][0]);
}
Console.ReadKey();
}
这是我改进11楼得代码,这个代码才是去重记录的,希望相互学习一下!