Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 索引超出gridview保存/更新/删除时的数组错误界限 索引超出gridview保存/更新/删除时数组错误的界限_C# - Fatal编程技术网

C# 索引超出gridview保存/更新/删除时的数组错误界限 索引超出gridview保存/更新/删除时数组错误的界限

C# 索引超出gridview保存/更新/删除时的数组错误界限 索引超出gridview保存/更新/删除时数组错误的界限,c#,C#,嗨…, 我正在使用GridView保存/更新/删除城市详细信息。 当我试图保存/更新/删除详细信息时,它将抛出一个错误“索引超出了数组的界限”。仅在具有已发布代码的服务器中。 在我本地的机器上,它工作得很好。因此,我将本地计算机的连接字符串更改为server,并在本地计算机中运行它。这也很好。 然后,我用(列、键、约束、触发器、索引和统计信息)检查了表city的DB架构。都是一样的。 GridView行命令的代码如下: City city = null; if (new[] { Comman

嗨…,
我正在使用GridView保存/更新/删除城市详细信息。
当我试图保存/更新/删除详细信息时,它将抛出一个错误“索引超出了数组的界限”。仅在具有已发布代码的服务器中。
在我本地的机器上,它工作得很好。因此,我将本地计算机的连接字符串更改为server,并在本地计算机中运行它。这也很好。
然后,我用(列、键、约束、触发器、索引和统计信息)检查了表city的DB架构。都是一样的。
GridView行命令的代码如下:

City city = null;  
if (new[] { CommandName.DeleteRow.GetTextName(), CommandName.UpdateRow.GetName() }.Contains(e.CommandName))  
 city = City.GetCityById(int.Parse(e.CommandArgument.ToString()));  
if (e.CommandName == CommandName.StartInsert.GetTextName())  
{  
gvCities.FooterRow.Visible = true;  
return;  
}  
if (e.CommandName == CommandName.InsertFirst.GetTextName())  
{  
var button = (Button)e.CommandSource;  
if (button == null)  
  throw new Exception("Control not found");  
var txtName = button.NamingContainer.NamingContainer.FindControl("txtName") as TextBox;  
var ddlEmptyAddState = button.NamingContainer.NamingContainer.FindControl("ddlEmptyAddState") as DropDownList;  
if (txtName == null)  
  throw new Exception("Control not found");  
city = new City{ Name = txtName.Text.Trim(), StateId = Convert.ToInt32(ddlEmptyAddState.SelectedValue) };  
city.InsertCity();  
}  
else if (e.CommandName == CommandName.Insert.GetTextName())  
{  
var row = gvCities.FooterRow;  
DropDownList ddlAddState = (DropDownList)row.FindControl("ddlAddState");  
city = new City
{
Name = ((TextBox) row.FindControl("txtName")).Text.Trim(),
StateId = Convert.ToInt32(ddlAddState.SelectedValue),
IsDefault = ((CheckBox) row.FindControl("cbDefault")).Checked
};  
city.InsertCity();  
}  
else if (e.CommandName == CommandName.DeleteRow.GetTextName())  
{  
city.DeleteCity();  
}  
else if (e.CommandName == CommandName.UpdateRow.GetName())  
{  
var row = gvCities.Rows[gvCities.EditIndex];  
DropDownList ddlEditState = (DropDownList)row.FindControl("ddlEditState");  
if (row == null)  
  throw new Exception("Edit row not found");  
city.Name = ((TextBox) row.FindControl("txtName")).Text.Trim();  
city.StateId = Convert.ToInt32(ddlEditState.SelectedValue);  
city.IsDefault = ((CheckBox)row.FindControl("cbDefault")).Checked;  
city.UpdateCity();
}  
gvCities.DataBind();  
if (e.CommandName != CommandName.Edit.GetTextName() && gvCities.EditIndex >= 0)  
  gvCities.EditIndex = -1;  
请帮我解决这个问题……
提前感谢…


关于

@Jayasankar,请在方法中放置一个断点,并告诉我们它失败的代码行,我认为它失败的代码行是var row=gvCities.Rows[gvCities.EditIndex];谢谢你的回复。。。但这一错误并不是在本地机器上造成的。。它发生在具有已发布代码的服务器上。。