Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6178773
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 24, 20262026-05-24T00:31:16+00:00 2026-05-24T00:31:16+00:00

I have a problem with my UPDATE functions and I need your help. I

  • 0

I have a problem with my UPDATE functions and I need your help.

I created a table Computers(COM_ID,Company,Price,Model,Description,CAT_ID,Image,Quantity)

I have a web service(AdminCentral.asmx) with this code

[WebMethod(Description = "Updates a  computer in the computer table", EnableSession = false)]

public string updateItem(string comid, string company, double price, string model, string description, string image, int CAT_ID, int quantity)

{

    try

    {

        dbConn = new DbConnection();

        SqlConnection conn = dbConn.OpenConnection();

        SqlCommand updateItem = new SqlCommand("UpdateComputer", conn);

        updateItem.CommandType = CommandType.StoredProcedure;


        SqlParameter updatecomid = updateItem.Parameters.Add("@COM_ID", SqlDbType.Char, 15);
        updatecomid.Value = comid;

        SqlParameter updateCompany = updateItem.Parameters.Add("@Company", SqlDbType.Char, 90);
        updateCompany.Value = company;

        SqlParameter updatePrice = updateItem.Parameters.Add("@Price", SqlDbType.Money, 8);
        updatePrice.Value = price;

        SqlParameter updateModel = updateItem.Parameters.Add("@Model", SqlDbType.Char, 150);
        updateModel.Value = model;


        SqlParameter updateDescription = updateItem.Parameters.Add("@Description", SqlDbType.Char, 255);
        updateDescription.Value = description;

        SqlParameter updateImage = updateItem.Parameters.Add("@Image", SqlDbType.Char, 50);
        updateImage.Value = image;


        SqlParameter updateCatId = updateItem.Parameters.Add("@CAT_ID", SqlDbType.Int, 2);
        updateCatId.Value = CAT_ID;

        SqlParameter updateQuantity = updateItem.Parameters.Add("@Quantity", SqlDbType.Int, 2);
        updateQuantity.Value = quantity;

        return this.ExecuteQuery(updateItem);

    }
    catch (Exception e)
    {
        return e.ToString();

    }
}

In a different application I created the web reference and I have this Datagrid

<asp:datagrid id="Computerchange" runat="server" AllowPaging="True" PageSize="2" AutoGenerateColumns="False" BorderColor="Gainsboro" Height="500px"

                            <Columns>
                                <asp:EditCommandColumn ButtonType="LinkButton" UpdateText="Update" HeaderText="Admin Functions" CancelText="Cancel" EditText="Edit"></asp:EditCommandColumn>
                                <asp:ButtonColumn Text="Delete" HeaderText="Delete" CommandName="Delete"></asp:ButtonColumn>
                                <asp:BoundColumn DataField="com_id" ReadOnly="True" HeaderText="Computer Number"></asp:BoundColumn>
                                <asp:BoundColumn DataField="company" HeaderText="Company"></asp:BoundColumn>
                                <asp:BoundColumn DataField="price" HeaderText="Price"></asp:BoundColumn>
                                <asp:BoundColumn DataField="model" HeaderText="Model"></asp:BoundColumn>
                                <asp:BoundColumn DataField="description" HeaderText="Description"></asp:BoundColumn>
                                <asp:BoundColumn DataField="id" ReadOnly="True" HeaderText="Category"></asp:BoundColumn>
                                <asp:BoundColumn DataField="imgSrc" HeaderText="Image"></asp:BoundColumn>
                                <asp:BoundColumn DataField="quantity" ReadOnly="True" HeaderText="Quantity"></asp:BoundColumn>
                            </Columns>
                        </asp:datagrid>

and I wrote this function

private void Computerchange_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)

{

    //Store updated column values in local variables:
    string updateCOM_ID = e.Item.Cells[2].Text;
    string updateCompany = ((TextBox)e.Item.Cells[3].Controls[0]).Text;
    double updatePrice = double.Parse(((TextBox)e.Item.Cells[4].Controls[0]).Text);
    string updateModel = ((TextBox)e.Item.Cells[5].Controls[0]).Text;
    string updateDescription = ((TextBox)e.Item.Cells[6].Controls[0]).Text;
    int updateCategoryId = int.Parse(e.Item.Cells[7].Text);
    string updateImage = ((TextBox)e.Item.Cells[8].Controls[0]).Text;
    int updateQuantity = int.Parse(e.Item.Cells[9].Text);
    newView.RowFilter = "com_id='" + updateCOM_ID + "'";
    if (newView.Count > 0)
    {
        //Delete the row that is being updated
        newView.Delete(0);
    }
    newView.RowFilter = "";

    //Create a new DataRow and populate it with the new data.
    DataRow Row = Table.NewRow();
    Row["com_id"] = updateCOM_ID;
    Row["company"] = updateCompany;
    Row["price"] = updatePrice;
    Row["model"] = updateModel;
    Row["description"] = updateDescription;
    Row["id"] = updateCategoryId;
    Row["imgSrc"] = updateImage;
    Row["quantity"] = updateQuantity;

    //Insert the new DataRow:
    Table.Rows.Add(Row);
    Computerchange.EditItemIndex = -1;
    Computerchange.DataSource = newView;
    Computerchange.DataBind();

    // Now update the database with the new data
    adminCentral1.adminCentral newData = new adminCentral1.adminCentral();
    string results;
    results = newData.updateItem(updateCOM_ID, updateCompany, updatePrice, updateModel, updateDescription, updateImage, updateCategoryId, updateQuantity);

    if (results == "Success")
    {
        errorLabel.Text = "Computer Updated to database!";
    }
    else
    {
        errorLabel.Text = results;
    }

When I click the Update button the error which I have is

"**Specified argument was out of the range of valid values.
Parameter name: index**"

Stack Trace:

[ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
Parameter name: index]

   System.Web.UI.ControlCollection.get_Item(Int32 index) +8750274
   AdminMainPage.Computerchange_UpdateCommand(Object source, DataGridCommandEventArgs e) +626
   System.Web.UI.WebControls.DataGrid.OnUpdateCommand(DataGridCommandEventArgs e) +115
   System.Web.UI.WebControls.DataGrid.OnBubbleEvent(Object source, EventArgs e) +498
   System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
   System.Web.UI.WebControls.DataGridItem.OnBubbleEvent(Object source, EventArgs e) +121
   System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
   System.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e) +125
   System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument) +169
   System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +9
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +176
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5563

Can you please help me with this error? I would like to mention that first, I didn’t have the Quantity column and the code was working. When I inserted the Quantity column then I had this error. I think that I am trying to access a control which is not created or not exist in the collection.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-24T00:31:17+00:00Added an answer on May 24, 2026 at 12:31 am

    The Specified argument was out of the range of valid values."Parameter name: index* means you tried to access collection outside its range

    The top two lines of stacktrace are

      System.Web.UI.ControlCollection.get_Item(Int32 index) +8750274
       AdminMainPage.Computerchange_UpdateCommand(Object source, DataGridCommandEventArgs e) +
    

    This means in the method Computerchange_UpdateCommand you’re accessing the Control Collection by an index that doesn’t exist.

    Unfortunatly you reference the control several times, any of the following could be the problem

    string updateCOM_ID = e.Item.Cells[2].Text;
    string updateCompany = ((TextBox)e.Item.Cells[3].Controls[0]).Text;
    double updatePrice = double.Parse(((TextBox)e.Item.Cells[4].Controls[0]).Text);
    string updateModel = ((TextBox)e.Item.Cells[5].Controls[0]).Text;
    string updateDescription = ((TextBox)e.Item.Cells[6].Controls[0]).Text;
    int updateCategoryId = int.Parse(e.Item.Cells[7].Text);
    string updateImage = ((TextBox)e.Item.Cells[8].Controls[0]).Text;
    int updateQuantity = int.Parse(e.Item.Cells[9].Text);
    

    However this is the most likely candidate.

    int updateQuantity = int.Parse(e.Item.Cells[9].Text);
    

    I suggest you put a breakpoint on the first one and step through and see which one is failing.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

The problem: I often have to update two or more repositories: One for the
I have a very weird problem: sometimes when I call nHibernate update to an
I have problem in some JavaScript that I am writing where the Switch statement
I have problem with return statment >.< I want to store all magazine names
I have problem with starting processes in impersonated context in ASP.NET 2.0. I am
I have problem compilin this code..can anyone tell whats wrong with the syntax CREATE
I have problem with ActionLink. I'd like to pass to my ActionLink parameter for
I have problem when I try insert some data to Informix TEXT column via
I do not have problem as such but I am quite new to Ruby.
I have a problem using the Java search function in Eclipse on a particular

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.