根据一列的值从Datatable中区分行.而不是所有列
本文关键字:中区 Datatable 一列 | 更新日期: 2023-09-27 17:54:17
我有一个数据表,我想根据一列的值获得不同的行,而不是根据数据表行中的所有列获得不同的行。因为我们可以得到如下不同的行
datatableName.DefaultView.ToTable("true","ColName");
因为在ToTable()中我们必须指定要显示的所有列。请帮助我,这样我就可以得到不同的行显示所有列,只有一列是用来获得不同的行。
示例行,我有如下
ID Application English Spanish German
1 sam thnks thnkd thkng
2 smp thnks thnke thnkp
3 anp same same same
我想得到所有这些行有不同的西班牙语/德语列值对英语列值.....
在这方面的帮助将是非常感激的……
Thanks in advance
如果您正在寻找如何查找列不匹配的行,这很容易
SELECT * FROM table WHERE column2 != column3
但是对于一个真正不同的,你必须在你需要的所有列上运行distinct,因为distinct意味着行不相同。
你也可以在两个列上有一个不同的子选择,然后如果你喜欢,在其余的列中加入。
当你说"我想得到所有的行,其中有不同的西班牙语/德语列值对英语列值…",这不是什么DISTINCT的意思,这是一个过滤器。
你可以这样做:
datatableName.DefaultView.RowFilter = "English <> German";
DataTable result = datatableName.DefaultView.ToTable("differentEngGer");
datatableName.DefaultView.RowFilter = null; //reset the view to not filter anything
你可以做
var x = (from r in dt.AsEnumerable() select r["ABC"]).Distinct().ToList(); //dt is the datatable
希望对您有所帮助
从MSDN论坛这里得到答案
你可以试试下面的代码。
datatableName.DefaultView.ToTable("true","ID","Application","English","Spanish","German");