2009-03-27 6 views
0

Dies ist mein Code Es funktioniert für wenn 1 Terminal, das 3 Dienste hat, aber es funktioniert nicht für mehr als 3 Dienste, wenn ich dann habe ich habe folgende Fehlermeldung:InvalidArgument = Wert von '3' ist nicht gültig für 'rowIndex'

InvalidArgument = Wert von ‚3‘ ist nicht gültig für ‚rowIndex‘

ich habe so müde, dieses Problem zu finden, jedoch keine Lösungen erhalten. Bitte helfen Sie mir.

MySqlCommand command = new MySqlCommand("VTerminalsLoad");//Procedure 
MySqlDataAdapter terminalAdapter = this.Database.ExecuteCommand(command); 
terminalAdapter.Fill(dataSet, "Terminals"); 

command = new MySqlCommand("VTServicesLoad");//Procedure 
command.Parameters.Add(new MySqlParameter("pVesselID", 1)); 
MySqlDataAdapter serviceAdapter = this.Database.ExecuteCommand(command);//Return Adaptor 
serviceAdapter.Fill(dataSet, "Services"); 

DataColumn[] parentColumns = { dataSet.Tables[0].Columns["SerialNo"], 
      dataSet.Tables[0].Columns["VesselID"], 
      dataSet.Tables[0].Columns["TerminalID"] }; 

DataColumn[] childColumns = { dataSet.Tables[1].Columns["SerialNo"], 
      dataSet.Tables[1].Columns["VesselID"], 
      dataSet.Tables[1].Columns["TerminalID"] }; 

DataRelation relationTS = new DataRelation("TerminalsServices", parentColumns, childColumns); 
dataSet.Relations.Add(relationTS); 

//Parent Table 
ListTerminal.DataSource = dataSet;  //ListTerminal Parent datagridview 
ListTerminal.DataMember = "Terminals"; 

//Child Table 
ListServices.DataSource = dataSet;// ListServices Child datagridview 
ListServices.DataMember = "Terminals.TerminalsServices"; 
+0

Verwenden Sie "3" irgendwo auf einer Null-basierten Sammlung von 3 Elementen, wobei die Indizes 0, 1 und 2, aber keine 3 wären? – DOK

+0

In welcher Zeile erhalten Sie diese Ausnahme? – Eddie

Antwort

2

Siehe http://connect.microsoft.com/VisualStudio/feedback/details/116413/datagridview-exception-with-readonly-cells

Dieses Problem, wenn erscheinen wird: 1. Datagridview binden an eine Datarelation 2. Sie versuchen, ein Datagrid in der ersten Reihe zu Readonly zu setzen, bevor „BindingCompleted“ (zB : Auf RowsAdded Ereignis von Datagridview)

Sie dieses Problem durch Verzögerung helfen

Hope this kann die Readonly-Setting Betrieb bis BindingCompleted bewältigen kann Sie.

+0

Der von Ihnen angegebene Link erfordert einen Login ... boo. – Andrew

Verwandte Themen