求一个算法,自动生成指定格式的编号的问题,希望有代码 父节点id应该知道吧。通过查询先获得同级的最大id大概是这样:select max(id) from tablename where parentid = 父id然后最大id加1。。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 到底是在数据库中生成,还是在程序中生成?如果是在程序中生成:TreeNode tn=treeView1.SelectedNode;string strText=tn.Text+tn.Nodes.Count.ToString("00");//多少位数字就加多少个0TreeNode stn=tn.Nodes.Add(strText);//其他处理 用SQL解决。把你的表结构贴出来。 int i=TreeView1.selectnode.nodes.count;StringBuilder sb = new StringBuilder();sb.Append("CY");if(i<10){ sb.Append("0");}sb.Append((i+1).ToString()); 以前用过的一个方法, 假定有一个结果集,列为 id pid(指向父点) bh(编号) name. 其中的编号有的有,有的没有.现在需要补齐所有的编号. 算法:1. While循环遍历结果集. 2. 如果是根节点,生成编号.写入当前行3. 如果不是根节点, 而且当前记录没有编号,查找父记录是否有编号 a)没有的话,跳过. b)有的话读出父点的编号, 假如为05. 在做循环从1 - 99,生成 0501,0502...0509.的编号,顺序查找编号是否占用,知道找到没有占用的,写入当前记录.4. 继续循环直到所有的编号都已经生成.这个算法的速度受节点深度的影响. 为了避免无限循环,还应该增加一个最大循环次数. 取最大值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"+上面的值. 如何用一个数组来表示n叉树呢? 串口接收二进制数据...求疑问. vs2010 调试winform程序时,try语句发生异常,是否可以忽略掉,继续执行程序. 在一个文件中,查找相应格式的字符串 让窗体最小化 请教一个正则表达式匹配问题。 winform打开word是出现"COMException :被呼叫方拒绝接受呼叫" 在取字段的值的时候能取出其中的一部分吗?如下面的语句 正则表达式与中文 一个非常奇怪的问题???求救! 关于.NET打包的问题 遍历list
如果是在程序中生成:TreeNode tn=treeView1.SelectedNode;
string strText=tn.Text+tn.Nodes.Count.ToString("00");//多少位数字就加多少个0
TreeNode stn=tn.Nodes.Add(strText);
//其他处理
把你的表结构贴出来。
int i=TreeView1.selectnode.nodes.count;
StringBuilder sb = new StringBuilder();
sb.Append("CY");
if(i<10)
{
sb.Append("0");
}
sb.Append((i+1).ToString());
2. 如果是根节点,生成编号.写入当前行
3. 如果不是根节点, 而且当前记录没有编号,查找父记录是否有编号
a)没有的话,跳过.
b)有的话读出父点的编号, 假如为05. 在做循环从1 - 99,生成 0501,0502...0509.的编号,顺序查找编号是否占用,知道找到没有占用的,写入当前记录.
4. 继续循环直到所有的编号都已经生成.这个算法的速度受节点深度的影响. 为了避免无限循环,还应该增加一个最大循环次数.
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"+上面的值.