使用DataSetHelper,对DataSet进行Group By时,可以对手动加入的数据进行Group By,而不能对从数据库或xml文件中加入的数据进行Group By
wtoeb 2006-05-14 02:27:20 问题:
使用DataSetHelper,对DataSet进行Group By时,可以对手动加入的数据进行Group By,而不能对从数据库或xml文件中加入的数据进行Group By。
string msg = null;
//读取xml数据源
DataSet dsxml = new DataSet();
dsxml.ReadXml(HttpContext.Current.Server.MapPath(xmlfilename),XmlReadMode.ReadSchema);
//建立新数据表
DataSet ds = new DataSet();
DataTable dt = new DataTable("Orders");
dt.Columns.Add("EmployeeID", Type.GetType("System.String"));
dt.Rows.Add(new object[] {"中国"});
dt.Rows.Add(new object[] {"日本"});
dt.Rows.Add(new object[] {"中国"});
dt.Rows.Add(new object[] {"日本"});
dt.Rows.Add(new object[] {"中国"});
for(int i=0;i<dsxml.Tables[0].Rows.Count;i++)//此dt中的指定固定值如“法国”可被group by
{
dt.Rows.Add(new object[] {"法国"});
}
for(int i=0;i<dsxml.Tables[0].Rows.Count;i++)//这里KeyWordGroup值来自xml,不能被group by
{
dt.Rows.Add(new object[] {""+dsxml.Tables[0].Rows[i]["KeyWordGroup"]+""});
}
ds.Tables.Add(dt)
;
DataSetHelper dsHelper = new DataSetHelper(ref ds);
dt = dsHelper.SelectGroupByInto("OrderSummary",//表名
ds.Tables["Orders"],//数据源
"EmployeeID",//Select
"",//条件
"EmployeeID");//需要Group的字段
for(int i=0; i<dt.Rows.Count; i++)
{
msg += dt.Rows[i]["EmployeeID"].ToString()+"<br>\n";
}
实际运行结果:
法国
区级
区级
区级
区级
日本
市县
市县
中国
而我需要的结果是:
法国
区级
日本
市县
中国