表一:SORT
ID   Sort    Compositor 
主键  一级名称 序号
表二: Small_Sort
ID  Parent_Sort    Small_Sort   Compositor  
主键  父ID          名称                 序号(不重复)
表三: Three_Sort
ID    Sort       Small_Sort   Three_Sort   Compositor 
主键   一级父ID    二级父ID      名称           序号(不重复)SqlDataAdapter cmd1 = new SqlDataAdapter("select Sort,compositor from sort order by Compositor", dbClass.Con);
            DataSet ds = new DataSet();
            cmd1.Fill(ds, "Sort");
SqlDataAdapter cmd2 = new SqlDataAdapter("select Small_Sort,compositor,Parent_Sort from small_sort order by Compositor", dbClass.Con);
            cmd2.Fill(ds, "Small_Sort");
SqlDataAdapter cmd3 = new SqlDataAdapter("SELECT Sort ,Small_Sort as b,Compositor,Three_Sort FROM Three_Sort order by Compositor", dbClass.Con);
            cmd3.Fill(ds, "Three_Sort");
            //DataRelation dr = new DataRelation("myrelation", ds.Tables["Sort"].Columns["Compositor"], ds.Tables["Small_Sort"].Columns["Parent_Sort"]);
            //ds.Relations.Add(dr);
            //dr = new DataRelation("myrelation2", ds.Tables["Small_Sort"].Columns["Compositor"], ds.Tables["Three_Sort"].Columns["Small_Sort"]);
            //ds.Relations.Add(dr);
            ds.Relations.Add("myrelation",
                ds.Tables["Sort"].Columns["Compositor"],
                ds.Tables["Small_Sort"].Columns["Parent_Sort"]);
            ds.Relations.Add();
               ds.Relations.Add("myrelation2",
               ds.Tables["Small_Sort"].Columns["Compositor"],
               ds.Tables["Three_Sort"].Columns["Small_Sort"]);
            repeaterCatalog.DataSource = ds.Tables["Sort"];
            repeaterCatalog.DataBind();
            ds.Clear();
            dbClass.Close();
出现错误:这些列当前不具有唯一值。 

解决方案 »

  1.   

    ds.Relations.Add("myrelation", ds.Tables["Sort"].Columns["ID"], ds.Tables["Small_Sort"].Columns["Parent_Sort"]); 
    ds.Relations.Add("myrelation2",  ds.Tables["Small_Sort"].Columns["ID"], ds.Tables["Three_Sort"].Columns["Small_Sort"]); 
     
      

  2.   

    出错:“column”参数不能为空。
    参数名: column
      

  3.   

    关系就是表二的Parent_Sort对应表一的Compositor 
    表三的Sort 对应表二的 Parent_Sort    Small_Sort对应表二的Compositor  
      

  4.   

    ds.Relations.Add("***", col1, col2);这时,至少col1不能有重复的,你看一下数据库确定没有重复的吗?
      

  5.   

    从数据库中得到的数据是:
    表SORT
    Sort    compositor
    A        1
    B        3
    C        4
    D        5
    表Small_Sort
    Small_Sort   composistor   parent_Sort
    A             1              1
    B             1              3
    C             2              3
    表Three_Sort
    Small_Sort  composistor  Three_Sort
    1              1             A
    1              1             B
    1              2              B 
      

  6.   

    怪不得,按你的做法:
    ds.Relations.Add("myrelation2", 
                  ds.Tables["Small_Sort"].Columns["Compositor"], 
                  ds.Tables["Three_Sort"].Columns["Small_Sort"]); Small_Sort表里的Composistor不是重复了吗?
      

  7.   

    Small_Sort表里的composistor是有二个1,是吧?