从数据库中绑定DevExpress Treelist中的数据

时间:2017-05-24 11:37:58

标签: c# sql winforms devexpress treelist

在我的项目中,我有一个名为SubControl的UserControl。在包含TreeList和两个Button的UserControl中。用于聚焦树状列表的下一行和上一行的按钮。

在另一个项目中,我有另一个名为MainControl的UserControl各种控件,而且我在这里使用SubControl。

我的问题是,从MainControl,我无法将数据绑定到数据库的树状列表中。

SqlConnection SqlCon = new SqlConnection("Data Source=source; Initial Catalog=dbname; Integrated Security=True");
        SqlCon.Open();
        SqlCommand ad = new SqlCommand("Select* from mytablename", SqlCon);
        SqlDataAdapter da = new SqlDataAdapter(ad);
        DataSet ds = new DataSet();

        da.Fill(ds);

        SubControl.DataSource = ds; 
        SubControl.DataBindings();

我怎样才能做到这一点。帮助赞赏

1 个答案:

答案 0 :(得分:2)

您必须绑定到DataTable,而不是DataSet。

SubControl.DataSource = ds.Tables[0];

来自DevExpress:

https://www.devexpress.com/Support/Center/Question/Details/Q520794

  

为了创建树列表层次结构,它是   在源DataTable中指定两个附加字段所必需的。   第一个字段必须存储节点的唯一ID(在大多数情况下,存储在那里)   已经是DataTable中的主键。另一个领域必须   包含每个节点的父节点的ID。要指定这些字段   对于TreeList控件,使用TreeList.KeyFieldName和   TreeList.ParentFieldName属性。请参阅以下内容   有关这方面的更多信息的帮助文章:树生成   XtraTreeList中的算法。