我需要一个C#方法,可以在源表包含复合键的位置转动DataTable / IDataReader对象。
我想用这个:http://weblogs.sqlteam.com/jeffs/articles/5091.aspx 但它仅适用于单个键列。
没有SQL。它必须是C#。
答案 0 :(得分:1)
您可以使用LINQ:
myDataTable.AsEnumerable()
.GroupBy(r => new {col1 = r["col1"], col2 = r["col2"]});
修改强> 根据评论进行了翻译:
DataTable dataTable = new DataTable();
dataTable.Columns.Add("col1");
dataTable.Columns.Add("col2");
dataTable.Columns.Add("val");
dataTable.Rows.Add("a", "b", 0);
dataTable.Rows.Add("a", "b", 2);
dataTable.Rows.Add("a", "c", 3);
Console.WriteLine(dataTable.AsEnumerable()
.GroupBy(r => new { col1 = r["col1"], col2 = r["col2"] }).Count()); //2
答案 1 :(得分:0)
不幸的是,我对LINQ知之甚少,无法确定这是否是一个可行的解决方案。我选择在数据库级别执行我的数据透视逻辑。我会睁大眼睛。