PS 补充下我代码 执行结构是这样这行代码执行结果
ID Name PID State OrderNumber
1 目录1 0 草稿 1
2 子目录1 1 草稿 2
3 子目录2 2 草稿 3
4 目录1 0 发布 1
5 子目录1 1 发布 2
6 子目录2 2 发布 3
----------------PID结构丢失 ID 5 6 的PID 分别是 1 2 上面写错了
ID Name PID State OrderNumber
1 目录1 0 草稿 1
2 子目录1 1 草稿 2
3 子目录2 2 草稿 3
4 目录1 0 发布 1
5 子目录1 1 发布 2
6 子目录2 2 发布 3
----------------PID结构丢失 ID 5 6 的PID 分别是 1 2 上面写错了
{
foreach (DataRow row in Cache_Class.Select("parent_id='" + parent + "'", " ORderID DESC"))
{ TreeNode node = new TreeNode();
node.Text = row["className"].ToString();
node.NodeID = row["classID"].ToString();
node.EnableCheckBox = true;
node.Expanded = true;
tree.Add(node);
BindTree(row["classID"].ToString(), node.Nodes);
}
}
DataTable Cache_Class=db.GetDataTable("select * From classlist")
咳咳 我的是插入问题 丢失PID 就是复制原来的数据 插入的时候 ID 变了 PID没变,现在要PID也变
private void BindTree(string parent, TreeNodeCollection tree)
{
foreach (DataRow row in Cache_Class.Select("parent_id='" + parent + "'", " ORderID DESC"))
{
if(row["classID"].ToString()!=editClassID)
{
TreeNode node = new TreeNode();
node.Text = row["className"].ToString();
node.NodeID = row["classID"].ToString();
node.EnableCheckBox = true;
node.Expanded = true;
tree.Add(node);
BindTree(row["classID"].ToString(), node.Nodes);
}
}
}
咳咳 我的是插入问题 丢失PID 就是复制原来的数据 插入的时候 ID 变了 PID没变,现在要PID也变如果是js附的值或更改过的值,要使用Request.Form["控件的name"]来获取如
Request.Form[dw_classID.UniqueID].ToString()
不是显示和修改, 是复制数据,就是把最开始的三条 数据 重新插入 这个表 ID PID会变 其他都不变
哥 你答非所问了
不是很明白你说什么呀,你是要重新导数据?那就多做一个字段,记录本身的记录ID,之后记录都和这个ID捆绑update set newid=id From xxx
哥 你答非所问了
不是很明白你说什么呀,你是要重新导数据?那就多做一个字段,记录本身的记录ID,之后记录都和这个ID捆绑update set newid=id From xxx
是这么个意思了 就是比如把 草稿状态的
ID PID State
1 0 草稿
2 1 草稿复制一份之后
ID PID State
1 0 草稿
2 1 草稿3 0 发布
4 3 发布因为ID 是新的了所以 PID也要对应改 ,就是这个PID也跟着新的变没想明白
哥 你答非所问了
不是很明白你说什么呀,你是要重新导数据?那就多做一个字段,记录本身的记录ID,之后记录都和这个ID捆绑update set newid=id From xxx
是这么个意思了 就是比如把 草稿状态的
ID PID State
1 0 草稿
2 1 草稿复制一份之后
ID PID State
1 0 草稿
2 1 草稿3 0 发布
4 3 发布因为ID 是新的了所以 PID也要对应改 ,就是这个PID也跟着新的变没想明白
本身你用自增字段来做关联就是会存在这个问题的,所以我们现在都是直接做成字符型来关联guid来做主键 guid是不可能重复的序列
这个只是对应2级 那么同理 多级也要能实现 这个效果
总是关联字段要用GUID也可以是其它,只要保证他是唯一的,且不是自增字段就行如果是sql server导入还好办点,可以先将表的标识去掉,然后导数据,最后再把标识找开就可以了,如果是Access就不能这么干了
原来 ID Name PID
1 a 0
2 b 1
新加 3 a 0 ---下面2条就是新的 但是ID-PID和上面结构一样 b是a的子
4 b 3 例子是只有2级 但是最后效果是要能够适用多级的
明白没?
原来 ID Name PID
1 a 0
2 b 1
新加 3 a 0 ---下面2条就是新的 但是ID-PID和上面结构一样 b是a的子
4 b 3 例子是只有2级 但是最后效果是要能够适用多级的
明白没?那就是要用Guid啊,不管你ID怎么变,只要classID和PID不变就可以了
比如你原来数据的这样的
原来 ID Name PID
1 a 0
2 b 1我现在插一条 Name=a pid=0
就变成了
原来 ID Name PID
1 a 0
2 b 1
3 a 0
在插条 Name=b pid=1
就变成ID Name PID
1 a 0
2 b 1
3 a 0
4 b 1但是你看 34 的结构就变了吧 实际效果是要 34的PID是0 3 的
原来 ID Name PID
1 a 0
2 b 1
新加 3 a 0 ---下面2条就是新的 但是ID-PID和上面结构一样 b是a的子
4 b 3 例子是只有2级 但是最后效果是要能够适用多级的
明白没?那就是要用Guid啊,不管你ID怎么变,只要classID和PID不变就可以了
懂了...........3Q3Q3Q33Q3Q3Q3Q33QQ
这个是不好指定的 34得动态获取 我现在把数据库修改成你的模式了 所以不用管那些ID PID了 谢了哈