2017-07-11 4 views
0

Ich habe eine Datagridview mit einer verschachtelten Beziehung erstellt, die einen Vorfall und seine Aktivitäten pro Zeile auflistet. Dies wird durch Verwendung von DevExpress:Spalten sind Null, während sie wirklich nicht C# WinForms sind

enter image description here

Mein Problem ist, ist, dass ich Zugang habe nicht richtig auf die Spalten alle auf.

Das bedeutet, dass ich nicht die versteckten Spalten, Spaltenbreiten und so ein alles durch eine NullReferenceException setzen kann.

Dies ist mein Code, die ich benutze:

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; 
    } 

Warum es nicht sagen, dass die Spalten null sind, wenn sie wirklich nicht sind? Ich habe versucht, int als Index aber das gleiche Problem zu verwenden.

+0

Welche Linie die Ausnahme wirft? – mjwills

+0

letzte Zeilen im Kommentar –

+0

Wenn Sie einen Haltepunkt auf das abschließende '}' setzen und dann debuggen (so dass es am Haltepunkt bricht) und dann '? GridView.Columns' in Ihr 'Immediate'-Fenster eingeben, was tun Sie? sehen? – mjwills

Antwort

2

Wechsel:

gridView.ViewCaption = "Activities"; 

zu:

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

Gleiches Problem: / –

Verwandte Themen