我正在尝试根据单列值从datatable获取行。我有FiledName, FieldType, TableName
列名。
以下查询工作正常,但我只获得FieldName
。不是所有列。
如何从下面获取所有列?
Dim duplicates = DataSourceTable.AsEnumerable().GroupBy(Function(i) i.Field(Of String)("FieldName")).Where(Function(g) g.Count() > 1).Select(Function(g) g.Key)
DataSourceTable = New DataTable
Dim row As DataRow
For Each dup In duplicates
row = DataSourceTable.NewRow
'row(0) = dup// I want get all values columns with index
Next
答案 0 :(得分:0)
这里需要有两个步骤:一个用于获取重复的FieldName值,另一个用于获取您感兴趣的其余值。如果使用临时表,最简单的解决方案是:
INSERT INTO myTempTable(FieldName)SELECT FieldName FROM MySourceTable WHERE something = what GROUP BY FieldName HAVING count(*)> 1;
SELECT a.FieldName,a.FieldType,a.TableName FROM MySourceTable a JOIN myTempTable b ON(a.FieldName = b.FieldName)ORDER BY a.FieldName,a.TableName;
答案 1 :(得分:0)
如果你需要整行而不是只需要群组的按键,那么就不要只选择按键。
只需更改
Dim duplicates = DataSourceTable.AsEnumerable()
.GroupBy(Function(i) i.Field(Of String)("FieldName"))
.Where(Function(g) g.Count() > 1)
.Select(Function(g) g.Key)
到
Dim duplicates = DataSourceTable.AsEnumerable()
.GroupBy(Function(i) i.Field(Of String)("FieldName"))
.Where(Function(g) g.Count() > 1)