4个回答
展开全部
不支持group by ,支持order by。
如果要使用group by的话,可以使用linq,这是C#3.0的内容。给你个示例
static void Main(string[] args)
{
DataTable dt = new DataTable();
dt.Columns.Add("A");
dt.Columns.Add("B");
dt.Columns.Add("C");
dt.Rows.Add("a1", "b1", "c1");
dt.Rows.Add("a1", "b2", "c2");
dt.Rows.Add("a2", "b3", "c3");
dt.Rows.Add("a3", "b4", "c4");
dt.Rows.Add("a1", "b5", "c5");
dt.Rows.Add("a2", "b6", "c6");
IEnumerable<IGrouping<string, DataRow>> result = dt.Rows.Cast<DataRow>().GroupBy<DataRow, string>(dr => dr["A"].ToString());//按A分组
foreach (IGrouping<string, DataRow> ig in result)
{
Console.WriteLine("当A="+ig.Key + ":");
Console.WriteLine("A".PadRight(10) + "B".PadRight(10) + "C".PadRight(10));
Console.WriteLine("=====".PadRight(10) + "=====".PadRight(10) + "=====".PadRight(10));
foreach (var dr in ig)
Console.WriteLine(dr["A"].ToString().PadRight(10) + dr["B"].ToString().PadRight(10) + dr["C"].ToString().PadRight(10));
}
Console.Read();
}
如果要使用group by的话,可以使用linq,这是C#3.0的内容。给你个示例
static void Main(string[] args)
{
DataTable dt = new DataTable();
dt.Columns.Add("A");
dt.Columns.Add("B");
dt.Columns.Add("C");
dt.Rows.Add("a1", "b1", "c1");
dt.Rows.Add("a1", "b2", "c2");
dt.Rows.Add("a2", "b3", "c3");
dt.Rows.Add("a3", "b4", "c4");
dt.Rows.Add("a1", "b5", "c5");
dt.Rows.Add("a2", "b6", "c6");
IEnumerable<IGrouping<string, DataRow>> result = dt.Rows.Cast<DataRow>().GroupBy<DataRow, string>(dr => dr["A"].ToString());//按A分组
foreach (IGrouping<string, DataRow> ig in result)
{
Console.WriteLine("当A="+ig.Key + ":");
Console.WriteLine("A".PadRight(10) + "B".PadRight(10) + "C".PadRight(10));
Console.WriteLine("=====".PadRight(10) + "=====".PadRight(10) + "=====".PadRight(10));
foreach (var dr in ig)
Console.WriteLine(dr["A"].ToString().PadRight(10) + dr["B"].ToString().PadRight(10) + dr["C"].ToString().PadRight(10));
}
Console.Read();
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
DataTable dtProv = dvProv.ToTable(true, "provId", "prov");
DataTable 支持这种操作
// 摘要:
// 根据现有 System.Data.DataView 中的行,创建并返回一个新的 System.Data.DataTable。
//
// 参数:
// distinct:
// 如果为 true,则返回的 System.Data.DataTable 将包含所有列都具有不同值的行。默认值为 false。
//
// columnNames:
// 一个字符串数组,包含要包括在返回的 System.Data.DataTable 中的列名的列表。System.Data.DataTable 包含指定的列,其顺序与这些列在该数组中的顺序相同。
//
// 返回结果:
// 一个新的 System.Data.DataTable 实例,其中包含所请求的行和列。
public DataTable ToTable(bool distinct, params string[] columnNames);
DataTable 支持这种操作
// 摘要:
// 根据现有 System.Data.DataView 中的行,创建并返回一个新的 System.Data.DataTable。
//
// 参数:
// distinct:
// 如果为 true,则返回的 System.Data.DataTable 将包含所有列都具有不同值的行。默认值为 false。
//
// columnNames:
// 一个字符串数组,包含要包括在返回的 System.Data.DataTable 中的列名的列表。System.Data.DataTable 包含指定的列,其顺序与这些列在该数组中的顺序相同。
//
// 返回结果:
// 一个新的 System.Data.DataTable 实例,其中包含所请求的行和列。
public DataTable ToTable(bool distinct, params string[] columnNames);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
certailly
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
什么意思?
datatable.select?
在代码里写SQL肯定是支持的
datatable.select?
在代码里写SQL肯定是支持的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询