int count=0;
DataTable dt = ProvinceManager.GetDataSetProvinceAlls("");
foreach (DataRow dr in dt.Rows)
{ //查询省份的家数
DataTable da = CollaborateManager.GetDataTablecollaborateByCount(Convert.ToInt32(dr["PId"].ToString()), 0, 0);
GetDataTablecollaborateByCount(下面有方法!)
TreeNode no = new TreeNode(dr["name"].ToString()+da.Rows.Count+"家)");
ViewState["Pid"] = dr["PId"].ToString();//保存Pid
no.NavigateUrl = "Works.aspx?PId=" + dr["PId"].ToString();
TvProvince.Nodes.Add(no);//绑定省
no.SelectAction = TreeNodeSelectAction.Expand;
DataTable dt1 = CityManager.GetDataSetCityById(int.Parse(dr["Pid"].ToString()));
foreach (DataRow dr1 in dt1.Rows)
{
//查询城市的家数
//DataTable da1 = CollaborateManager.GetDataTablecollaborateByCount(0, Convert.ToInt32(dr["CId"].ToString()), 0);
//Response.Write(da1.Rows.Count);
TreeNode no1 = new TreeNode(dr1["name"].ToString()+"家");
ViewState["CId"] = dr1["CId"].ToString();//保存Pid
no1.NavigateUrl = "Works.aspx?CId=" + dr1["CId"].ToString();
no.ChildNodes.Add(no1);//绑定城
no1.SelectAction = TreeNodeSelectAction.Expand;
DataTable dt2 = AreaManager.GetDatSetAreaById(int.Parse(dr1["CId"].ToString()));
//DataTable dt2 = CollaborateManager.GetDataTablecollaborateByCount(0,0,int.Parse(dr1["CId"].ToString()));
foreach (DataRow dr2 in dt2.Rows)
{
TreeNode no2 = new TreeNode(dr2["Aname"].ToString()+"100家");
no2.SelectAction = TreeNodeSelectAction.Expand;
ViewState["AId"] = dr2["AId"].ToString();//保存Pid
no2.NavigateUrl = "Works.aspx?AId=" + dr2["AId"].ToString();
no1.ChildNodes.Add(no2);//绑定区
}
}
} TvProvince.CollapseAll();
//统计省市区的合作公司的家数
public DataTable GetDataTablecollaborateByCount(int pid, int cid,int aid)
{ StringBuilder strSql = new StringBuilder();
if( pid!=0)
{
strSql.Append("select count(ProId) from Collaborate where ProId="+pid);
}
if(cid!=0)
{
strSql.Append("select count(CId) from Collaborate where CId=" + cid);
}
if(aid!=0)
{
strSql.Append("select count(AId) from Collaborate where AId=" + aid);
}
return DBHelper.Query(strSql.ToString()).Tables[0];
}我想根据Collabroate 这个表 Id tilte ProId CId AID
1 上海1公司 2 201 352
2 上海2公司 2 201 352
3 上海3公司 2 201 352
4 上海4公司 2 201 352 就是想获取 ProId的总条数 可是我获取的都是1家怎么获取的Count上海 (4家)其实就是这个4是怎么获取的 我每次获取都是1啊
—上海市
—普陀区
DataTable dt = ProvinceManager.GetDataSetProvinceAlls("");
foreach (DataRow dr in dt.Rows)
{ //查询省份的家数
DataTable da = CollaborateManager.GetDataTablecollaborateByCount(Convert.ToInt32(dr["PId"].ToString()), 0, 0);
GetDataTablecollaborateByCount(下面有方法!)
TreeNode no = new TreeNode(dr["name"].ToString()+da.Rows.Count+"家)");
ViewState["Pid"] = dr["PId"].ToString();//保存Pid
no.NavigateUrl = "Works.aspx?PId=" + dr["PId"].ToString();
TvProvince.Nodes.Add(no);//绑定省
no.SelectAction = TreeNodeSelectAction.Expand;
DataTable dt1 = CityManager.GetDataSetCityById(int.Parse(dr["Pid"].ToString()));
foreach (DataRow dr1 in dt1.Rows)
{
//查询城市的家数
//DataTable da1 = CollaborateManager.GetDataTablecollaborateByCount(0, Convert.ToInt32(dr["CId"].ToString()), 0);
//Response.Write(da1.Rows.Count);
TreeNode no1 = new TreeNode(dr1["name"].ToString()+"家");
ViewState["CId"] = dr1["CId"].ToString();//保存Pid
no1.NavigateUrl = "Works.aspx?CId=" + dr1["CId"].ToString();
no.ChildNodes.Add(no1);//绑定城
no1.SelectAction = TreeNodeSelectAction.Expand;
DataTable dt2 = AreaManager.GetDatSetAreaById(int.Parse(dr1["CId"].ToString()));
//DataTable dt2 = CollaborateManager.GetDataTablecollaborateByCount(0,0,int.Parse(dr1["CId"].ToString()));
foreach (DataRow dr2 in dt2.Rows)
{
TreeNode no2 = new TreeNode(dr2["Aname"].ToString()+"100家");
no2.SelectAction = TreeNodeSelectAction.Expand;
ViewState["AId"] = dr2["AId"].ToString();//保存Pid
no2.NavigateUrl = "Works.aspx?AId=" + dr2["AId"].ToString();
no1.ChildNodes.Add(no2);//绑定区
}
}
} TvProvince.CollapseAll();
//统计省市区的合作公司的家数
public DataTable GetDataTablecollaborateByCount(int pid, int cid,int aid)
{ StringBuilder strSql = new StringBuilder();
if( pid!=0)
{
strSql.Append("select count(ProId) from Collaborate where ProId="+pid);
}
if(cid!=0)
{
strSql.Append("select count(CId) from Collaborate where CId=" + cid);
}
if(aid!=0)
{
strSql.Append("select count(AId) from Collaborate where AId=" + aid);
}
return DBHelper.Query(strSql.ToString()).Tables[0];
}我想根据Collabroate 这个表 Id tilte ProId CId AID
1 上海1公司 2 201 352
2 上海2公司 2 201 352
3 上海3公司 2 201 352
4 上海4公司 2 201 352 就是想获取 ProId的总条数 可是我获取的都是1家怎么获取的Count上海 (4家)其实就是这个4是怎么获取的 我每次获取都是1啊
—上海市
—普陀区
姐姐类 他是在Tree里面的 那个ProId 是根据Tree的节点传的Id 如果是group by 那是单独用的
GetDataTablecollaborateByCount(下面有方法!)
TreeNode no = new TreeNode(dr["name"].ToString()+da.Rows.Count+"家)");
断点看GetDataTablecollaborateByCount方法里面返回的da.rows.count是不是都为1
"select count(ProId) from Collaborate where ProId="+pid+" group by proid"
检查DBHelper.Query(strSql.ToString()).Tables[0];方法
/// <summary>
/// 查询合作的家数
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
public string getCount(object obj)
{
return CollaborateManager.GetModelHeZuo(string.Format("ProId={0} ", Convert.ToInt32(obj.ToString()))).Count.ToString();
}
#endregion
这是以前没有用Tree的时候 绑定的家数! 先在用了Tree就不行了!
select count(ProId) from Collaborate where ProId="+pid
直接改
select * from Collaborate where ProId="+pid
就行了
郁闷,不解释
如果不是这样可以这样
DataRow[] foundRows = dt.Select("[PId]="+id);
)
{ StringBuilder strSql = new StringBuilder();
if( pid!=0)
{
strSql.Append("select count(ProId) from Collaborate where ProId="+pid);//看这句sql,你写的是求取Collaborate表中ProId=XX的行数总和count(ProId),得出来的肯定是只有一个总和数字
}
if(cid!=0)
{
strSql.Append("select count(CId) from Collaborate where CId=" + cid);
}
if(aid!=0)
{
strSql.Append("select count(AId) from Collaborate where AId=" + aid);
}
return DBHelper.Query(strSql.ToString()).Tables[0];
}而循环里面是TreeNode no = new TreeNode(dr["name"].ToString()+da.Rows.Count+"家)");//这是什么?这是所得行数的和!!!!要么把da.Rows.Count改成da.Rows[0][0].ToString()
要么把select count(ProId) from Collaborate where ProId="+pid改为
select * from Collaborate where ProId="+pid
另外看21#不要多次从数据库里查询,一次查出全部,然后用dt.Select方法
TreeNode no = new TreeNode(dr["name"].ToString()+da.Rows.Count+"家)");dr["Name"]是省份名 da.Rows.count是家数之和
打印出来的 Response.Write("省份合作的公司:"+da.Rows.Count);
省份合作的公司: 111111111111111111111111111111111111
TreeNode no = new TreeNode(dr["name"].ToString()+" ("+CollaborateManager.GetProvinceByCount(Convert.ToInt32(dr["PId"]))+"家)");
//查询城市合作的家数
TreeNode no1 = new TreeNode(dr1["name"].ToString()+" ("+CollaborateManager.GetCityByCount(Convert.ToInt32(dr1["CId"]))+"家)");
#region 获取省市区合作的公司
//统计省份的合作公司
public int GetProvinceByCount(int id)
{
string sql = "select count(ProId) from Collaborate where ProId=" + id;
int pid = Convert.ToInt32(DBHelper.ExecuteScalar(sql, CommandType.Text, new SqlParameter("ProId", id)));
return pid;
}
//统计城市的合作公司
public int GetCityByCount(int cid)
{
string sql = "select count(CId) from Collaborate where CId=" + cid;
int c = Convert.ToInt32(DBHelper.ExecuteScalar(sql, CommandType.Text, new SqlParameter("CId", cid)));
return c;
}
#endregion---DbHepler加上一个 返回首行首列
private static SqlCommand GetCommand(string cmdText, CommandType cmdType, SqlParameter[] values)
{
SqlCommand cmd = new SqlCommand();
cmd.CommandText = cmdText;
cmd.CommandType = cmdType;
cmd.Connection = new SqlConnection(connectionString);
if (values != null)
foreach (SqlParameter p in values)
cmd.Parameters.Add(p); cmd.Connection.Open();
return cmd;
}
//查询出第一行的第一列,返回Object
public static object ExecuteScalar(string cmdText, CommandType cmdType, params SqlParameter[] parameters)
{
SqlCommand cmd = GetCommand(cmdText, cmdType, parameters);
object result = cmd.ExecuteScalar();
cmd.Connection.Close();
return result;
}哈哈!结贴了!终于出来了!分数按回答的内容 给分!
DataTable dt = ProvinceManager.GetDataSetProvinceAlls("");//取出全部
然后
DataRow[]drs=dt.Select("proid="+proid);
int i=drs.count;
TreeNode no = new TreeNode(dr["name"].ToString()+" ("+CollaborateManager.GetProvinceByCount(Convert.ToInt32(dr["PId"]))+"家)");//用i替换