C# InvalidArgument=的值';3';对';无效;行索引';

C# InvalidArgument=的值';3';对';无效;行索引';,c#,C#,这是我的代码,如果1个终端有3个服务,但它不工作超过3个服务,当我这样做时,我得到以下错误消息: InvalidArgument=值“3”对“rowIndex”无效 我很想找出这个问题,但找不到任何解决办法。 任何人都可以帮助我 MySqlCommand command = new MySqlCommand("VTerminalsLoad");//Procedure MySqlDataAdapter terminalAdapter = this.Database.ExecuteCommand(c

这是我的代码,如果1个终端有3个服务,但它不工作超过3个服务,当我这样做时,我得到以下错误消息:

InvalidArgument=值“3”对“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";

以下情况下会出现此问题: 1.DataGridView绑定到DataRelation 2.您尝试在“BindingCompleted”之前将第一行中的DataGridViewCell设置为只读(例如:datagridview的RowsAdded事件)

您可以通过将只读设置操作延迟到绑定完成来解决此问题


希望这能对您有所帮助。

您是否在以零为基础的3项集合中使用“3”,其中索引为0、1和2,但不是3?您在哪一行收到此异常?您提供的链接需要登录。。。喝倒采