2017-07-11 29 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

同一問題:/ –

相關問題