2017-07-11 28 views
0

我已经创建了一个嵌套关系的datagridview,它列出了一个事件及其每行的活动。这通过使用的DevExpress:列据说是空的,而他们真的不是C#WinForms

enter image description here

我的问题是,是,我没有权利列访问的。

这意味着我无法通过NullReferenceException设置隐藏列,列宽等。

这是我的代码,我使用:

private void DisplayData() 
    { 
     conn = new SqlConnection("Server=.\\SQLEXPRESS;Database=Ticketing;Integrated Security=true"); 
     daIncidents = new SqlDataAdapter("Select * from incidents", conn); 
     daActivities = new SqlDataAdapter("Select * from Activity", conn); 
     ds = new DataSet(); 

     daIncidents.Fill(ds, "Incidents"); 
     daActivities.Fill(ds, "Activities"); 

     DataColumn keyColumn = ds.Tables["Incidents"].Columns["IncidentID"]; 
     DataColumn foreignKeyColumn = ds.Tables["Activities"].Columns["IncidentID"]; 
     ds.Relations.Add("IncidentsActivities", keyColumn, foreignKeyColumn); 

     gridControl.DataSource = ds.Tables["Incidents"]; 
     gridControl.ForceInitialize(); 

     GridView gridView = new GridView(gridControl); 

     gridControl.LevelTree.Nodes.Add("IncidentsActivities", gridView); 
     gridView.ViewCaption = "Activities"; 

     //gridView.Columns["ActivityID"].ReadOnly = true; 
     //gridView.Columns["Description"].Width = 40; 
    } 

为什么它说,该字段为空,如果他们真的都没有?我曾尝试使用int作为索引,但同样的问题。

+0

哪条线抛出异常? – mjwills

+0

评论的最后一行 –

+0

如果你在最后一个'}上放置一个断点,然后调试它(所以它在断点处断开),然后在你的'Immediate'窗口中键入'?gridView.Columns',你会怎么做?看到? – mjwills

回答

2

变化:

gridView.ViewCaption = "Activities"; 

到:

gridView.ViewCaption = "Activities"; 
gridView.PopulateColumns(); 
+0

同一问题:/ –

相关问题