DataTable dt = getGridview(); //获得另一个datatable
DataView dtViewContract_c = dt.DefaultView;
DataTable dtContract_c = dtViewContract_c.ToTable(true, "machineType", "configuration");
dtContract_c.Columns.Add("count", typeof(int)); //增加一列用来记录相同机型配置的记录条数
dtContract_c.Columns.Add("fixture", typeof(decimal));
dtContract_c.Columns.Add("contractPrice", typeof(decimal));
for (int i = 0; i < dtContract_c.Rows.Count; i++)
{
string fliter="machineType='"+dtContract_c.Rows[i]["machineType"].ToString() +" ' and configuration='" + dtContract_c.Rows[i] ["configuration"].ToString()+"'";// dt的过滤条件
dtContract_c.Rows[i]["fixture"] = dt.Compute("sum(fixture)", fliter);
dtContract_c.Rows[i]["contractPrice"] = dt.Compute("avg(contractPrice)", fliter);
dtContract_c.Rows[i]["count"] =Convert.ToInt16(dt.Compute("count(*)",fliter));//出错!!!聚合参数中的语法错误: 需要具有可能的“Child”限定符的单个列参数。
}
请问哪位大侠知道什么原因,应该怎么修改呢,很急啊!
DataView dtViewContract_c = dt.DefaultView;
DataTable dtContract_c = dtViewContract_c.ToTable(true, "machineType", "configuration");
dtContract_c.Columns.Add("count", typeof(int)); //增加一列用来记录相同机型配置的记录条数
dtContract_c.Columns.Add("fixture", typeof(decimal));
dtContract_c.Columns.Add("contractPrice", typeof(decimal));
for (int i = 0; i < dtContract_c.Rows.Count; i++)
{
string fliter="machineType='"+dtContract_c.Rows[i]["machineType"].ToString() +" ' and configuration='" + dtContract_c.Rows[i] ["configuration"].ToString()+"'";// dt的过滤条件
dtContract_c.Rows[i]["fixture"] = dt.Compute("sum(fixture)", fliter);
dtContract_c.Rows[i]["contractPrice"] = dt.Compute("avg(contractPrice)", fliter);
dtContract_c.Rows[i]["count"] =Convert.ToInt16(dt.Compute("count(*)",fliter));//出错!!!聚合参数中的语法错误: 需要具有可能的“Child”限定符的单个列参数。
}
请问哪位大侠知道什么原因,应该怎么修改呢,很急啊!
指定一个具体列名
例如
Convert.ToInt16(dt.Compute("count(fixture)",fliter))