我用TreeList控件进行信息添加操作,节点的ID都存储为GUID类型的,根结点ID用字段ParentID来存储。
在数据库和数据集里都设置字段ParentID为GUID类型,但当添加根结点信息时,
会报错:GUID应包含4个短划线的32位数(.....)。不能在ParentID列中存储<>。所需类型是GUID。如图所示:
当我把数据集里字段ParentID的类型改为string时,添加根节点时不会报错,但同时添加子节点时却不能正常作为子节点显示,
而还是添到根结点一级上了,也就是说这种情况下,只能添加根结点,不能添加子节点,最后保存的时候也会报string类型不能转化为GUID类型的错误,
因为数据库里并未改类型。当我把ParentID的类型改为GUID时,根结点和子节点都能正常添加,而且可以正常保存,但就是有一点问题,就是当往树结构里添加根结点时,
显示如图所示的问题,不知什么原因,查了半天也没搞到相近的问题和答案,想不透,故上来发帖请教大家,也许我的处理思路可能不对,请大家不吝赐教啊!!谢谢

解决方案 »

  1.   

    http://sz2.photo.store.qq.com/ 
    http_imgload.cgi?/rurl2=093485be42b1cdd428f00f37f7e94a1fce4e 
    fb58859cafe98f8863da42c5acc35af1a210c92a4b03fe 
    7bce557d31aa72c597ef608157bae99a328f3c59e42d7e090c76 
    dd48160d3e4f23bdc1d76b04c2c7292fbd
      

  2.   

    我觉得用GUID,没有什么意义,还不如用字符呢,把表结构建好就行了,用递归显示
      

  3.   

    GUID应包含4个短划线的32位数(.....)。不能在ParentID列中存储 <>。所需类型是GUID。 你添加一个新的节点,是不是没有给它的Id赋值啊
    导致ID的类型不是GUID了?
      

  4.   

    赋值了呀,此时的ID和ParentID都是赋的GUID.NewGuid()
    我单步执行的时候,也看了,值都没有问题的
    问题出在这一步:DevExpress.XtraTreeList.Nodes.TreeListNode tnd = this.treeList1.AppendNode(nodeData,null);
    其中nodeData是数组,null所处的位置是让添加ParentNode,是ListNode类型的。因为是添加根结点,所以这里用了null
    可是执行完这一步,程序就跳走了
    我用try{}catch{}捕捉它,也没有异常,可就是会报这么个错误提示
      

  5.   

    这里叙述的有点问题。赋值倒是赋值了,ID里能保存的,因为是根结点,所以ParentID是NULL值