父节点id应该知道吧。
通过查询先获得同级的最大id
大概是这样:
select max(id) from tablename where parentid = 父id
然后最大id加1。。

解决方案 »

  1.   

    到底是在数据库中生成,还是在程序中生成?
    如果是在程序中生成:TreeNode tn=treeView1.SelectedNode;
    string strText=tn.Text+tn.Nodes.Count.ToString("00");//多少位数字就加多少个0
    TreeNode stn=tn.Nodes.Add(strText);
    //其他处理
      

  2.   

    用SQL解决。
    把你的表结构贴出来。
      

  3.   


    int i=TreeView1.selectnode.nodes.count;
    StringBuilder sb = new StringBuilder();
    sb.Append("CY");
    if(i<10)
    {
        sb.Append("0");
    }
    sb.Append((i+1).ToString());
      

  4.   

    以前用过的一个方法, 假定有一个结果集,列为 id pid(指向父点) bh(编号) name. 其中的编号有的有,有的没有.现在需要补齐所有的编号. 算法:1. While循环遍历结果集. 
    2. 如果是根节点,生成编号.写入当前行
    3. 如果不是根节点, 而且当前记录没有编号,查找父记录是否有编号
       a)没有的话,跳过.
       b)有的话读出父点的编号, 假如为05. 在做循环从1 - 99,生成 0501,0502...0509.的编号,顺序查找编号是否占用,知道找到没有占用的,写入当前记录.
    4. 继续循环直到所有的编号都已经生成.这个算法的速度受节点深度的影响. 为了避免无限循环,还应该增加一个最大循环次数. 
      

  5.   

    取最大值
    select isnull(max(convert (int ,right(ecsTyCode,2))),0)+1 as maxcode  from mst_bs_ecsType where  left(ecsTyCode,len('FAAABBB'))='FAAABBB' and len(ecsTyCode)=len('FAAABBB')+2
    其中"FAAABBB"为父结点.
    要生成的结点为"FAAABBB"+上面的值.