InvalidArgument ='3'的值对'rowIndex'无效

时间:2009-03-27 18:08:44

标签: 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 个答案:

答案 0 :(得分:2)

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

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

您可以通过将ReadOnly-Setting操作延迟到BindingCompleted

来解决此问题

希望这可以帮到你。