2009-03-27 18 views
0

これは私のコードです3つのサービスを持っている1つの端末が3つのサービスのために働いていない場合、次のエラーメッセージ:「3」のInvalidArgument = '3'の値は 'rowIndex'には無効

InvalidArgument =値は有効ではありません「rowIndexに」

私は、この問題を見つけることはとても疲れていますが任意の解決策を得ることができませんでした。 誰か助けてください。

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

ゼロベースの3つのアイテムのコレクションのどこかに「3」を使用していますか?インデックスは0,1,2となりますが、3はありません。 – DOK

+0

この例外はどの回線で有効になりますか? – Eddie

答えて

2

場合、この問題が表示されますhttp://connect.microsoft.com/VisualStudio/feedback/details/116413/datagridview-exception-with-readonly-cells

を参照してください:あなたは「BindingCompleted」(例えば前に、読み取り専用に最初の行でのDataGridViewCellを設定しようとしたDataRelation 2に 1. DataGridViewのバインド:あなたは、これが助けることができる

希望BindingCompletedまでの遅延により、読み取り専用、設定操作を、この問題に取り組むことができ

のDataGridViewのRowsAddedイベント)で 君は。

+0

あなたが提供したリンクには、ログイン...ブーが必要です。 – Andrew

関連する問題