На моей странице есть GridView для управления фабричными заводами. Я могу успешно редактировать данные в сетке, щелкнув ссылку редактирования, а затем сохранив свои изменения после нажатия ссылки обновления. Я хочу, чтобы столбец ID сетки был скрыт от пользователя, поэтому я добавил свойство Visible в столбец Plant_ID сетки и установил для него значение false, столбец скрыт, но я получаю сообщение об ошибке: «Входная строка не была в правильном формате» после перехода по ссылке обновления.
Это мой источник данных Grid и SQL:
<asp:GridView  ID="GridPlants" runat="server" DataKeyNames="Plant_ID" AllowPaging="True" PageSize="7" 
                        AllowSorting="True" AutoGenerateColumns="False" AutoGenerateEditButton="True" 
                        BorderWidth="2px" CellPadding="2" CssClass="datatable" GridLines="None" 
                        ShowFooter="True" SortedAscendingCellStyle-CssClass="sortasc" OnSorting="gvPlant_Sorting" 
                        SortedAscendingHeaderStyle-CssClass="sortasc" 
                        SortedDescendingCellStyle-CssClass="sortdesc" 
                        SortedDescendingHeaderStyle-CssClass="sortdesc" 
                           OnRowCancelingEdit="GridPlants_RowCancelingEdit" 
                        OnRowEditing="GridPlants_RowEditing" OnRowUpdating="GridPlants_RowUpdating" OnPageIndexChanging="gvPlants_PageIndexChanging" 
                        >
                        <EditRowStyle />
                        <PagerStyle CssClass="pager-row" />
                        <RowStyle CssClass="row" />
                        <Columns>
                             <asp:BoundField DataField="Plant_ID" HeaderText="ID" InsertVisible="False" 
                                ReadOnly="True" SortExpression="Plant_ID" Visible="false" />
                            <asp:TemplateField HeaderText="Plant Name" SortExpression="Plant_Name">
                                <EditItemTemplate>
                                    <asp:TextBox ID="Txtplant" runat="server" Text='<%# Bind("Plant_Name") %>'></asp:TextBox>
                                </EditItemTemplate>
                                <ItemTemplate>
                                    <asp:Label ID="Label1" runat="server" Text='<%# Bind("Plant_Name") %>'></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="Plant Code" SortExpression="Plant_code">
                                <EditItemTemplate>
                                    <asp:TextBox ID="Txtcode" runat="server" Text='<%# Bind("Plant_code") %>'></asp:TextBox>
                                </EditItemTemplate>
                                <ItemTemplate>
                                    <asp:Label ID="Label2" runat="server" Text='<%# Bind("Plant_code") %>'></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="Address" SortExpression="Address">
                                <EditItemTemplate>
                                    <asp:TextBox ID="Txtaddress" runat="server" Text='<%# Bind("Address") %>'></asp:TextBox>
                                </EditItemTemplate>
                                <ItemTemplate>
                                    <asp:Label ID="Label3" runat="server" Text='<%# Bind("Address") %>'></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="City" SortExpression="City">
                                <EditItemTemplate>
                                    <asp:TextBox ID="Txtcity" runat="server" Text='<%# Bind("City") %>'></asp:TextBox>
                                </EditItemTemplate>
                                <ItemTemplate>
                                    <asp:Label ID="Label4" runat="server" Text='<%# Bind("City") %>'></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="State" SortExpression="State">
                                <EditItemTemplate>
                                    <asp:TextBox ID="Txtstate" runat="server" Text='<%# Bind("State") %>'></asp:TextBox>
                                </EditItemTemplate>
                                <ItemTemplate>
                                    <asp:Label ID="Label5" runat="server" Text='<%# Bind("State") %>'></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="Zip" SortExpression="Zip">
                                <EditItemTemplate>
                                    <asp:TextBox ID="Txtzip" runat="server" Text='<%# Bind("Zip") %>'></asp:TextBox>
                                </EditItemTemplate>
                                <ItemTemplate>
                                    <asp:Label ID="Label6" runat="server" Text='<%# Bind("Zip") %>'></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="Plant Email" SortExpression="Plant_Email">
                                <EditItemTemplate>
                                    <asp:TextBox ID="Txtemail" runat="server" Text='<%# Bind("Plant_Email") %>'></asp:TextBox>
                                </EditItemTemplate>
                                <ItemTemplate>
                                    <asp:Label ID="Label7" runat="server" Text='<%# Bind("Plant_Email") %>'></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="Active" SortExpression="Active">
                                <EditItemTemplate>
                                    <asp:CheckBox ID="Chkactive" runat="server" Checked='<%# Bind("Active") %>' 
                                        Enabled="false" />
                                </EditItemTemplate>
                                <ItemTemplate>
                                    <asp:CheckBox ID="CheckBox2" runat="server" Checked='<%# Bind("Active") %>' 
                                        Enabled="false" />
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:BoundField DataField="UpdateBy" HeaderText="Update By" 
                                ReadOnly="True" SortExpression="UpdateBy" />
                            <asp:BoundField DataField="UpdateDate" HeaderText="Update Date" ReadOnly="True" 
                                SortExpression="UpdateDate" />
                        </Columns>
                       <%-- <PagerSettings FirstPageText="«" LastPageText="»" Mode="NumericFirstLast" 
                            PageButtonCount="7" />--%>
                        <SortedAscendingCellStyle CssClass="sortasc" />
                        <SortedAscendingHeaderStyle CssClass="sortasc" />
                        <SortedDescendingCellStyle CssClass="sortdesc" />
                        <SortedDescendingHeaderStyle CssClass="sortdesc" />
                    </asp:GridView>
                    <asp:SqlDataSource  ID="PlantDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:ShipmentNotification %>"
                SelectCommand="select Plant_ID, Plant_Name, Plant_code, Address, City, State, Zip, Plant_Email, Active, UpdateDate, UpdateBy from Plant order by plant_code">
                 </asp:SqlDataSource> 
Это моя функция обновления:
 Protected Sub GridPlants_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GridPlants.RowUpdating
        Dim Editrow As GridViewRow = GridPlants.Rows(e.RowIndex)
Dim PlantId As String = GridPlants.DataKeys(e.RowIndex)("Plant_ID")
            Dim textplant As TextBox = Editrow.FindControl("txtplant")
            Dim textcode As TextBox = Editrow.FindControl("txtcode")
            Dim checkbox As CheckBox = Editrow.FindControl("chkactive")
            Dim address As TextBox = Editrow.FindControl("txtaddress")
            Dim city As TextBox = Editrow.FindControl("txtcity")
            Dim state As TextBox = Editrow.FindControl("txtstate")
            Dim zip As TextBox = Editrow.FindControl("txtzip")
            Dim email As TextBox = Editrow.FindControl("txtemail")
    'I get an error on the following line:
            DL.AddUpdatePlants("Admin", "Edit", Editrow.Cells(1).Text, textplant.Text, textcode.Text, address.Text, city.Text, state.Text, zip.Text, email.Text, checkbox.Checked)
            'CType(Editrow.Cells(2).Controls(0), TextBox)).
            GridPlants.EditIndex = -1
            BindData()
        End Sub
... Фрагмент хранимой процедуры:
Dim myCommand As New SqlCommand("SavePlantDetails", myConnection)
            myCommand.CommandType = CommandType.StoredProcedure
            myCommand.Parameters.AddWithValue("@editType", addupdate)
            myCommand.Parameters.AddWithValue("@Plant_ID", plant_id)
            myCommand.Parameters.AddWithValue("@Plant_Name", name)
            myCommand.Parameters.AddWithValue("@Plant_code", code)
            myCommand.Parameters.AddWithValue("@address", address)
            myCommand.Parameters.AddWithValue("@city", city)
            myCommand.Parameters.AddWithValue("@state", state)
            myCommand.Parameters.AddWithValue("@zip", zip)
            myCommand.Parameters.AddWithValue("@email", email)
            myCommand.Parameters.AddWithValue("@username", username)
            myCommand.Parameters.AddWithValue("@Active", active)
            myCommand.ExecuteNonQuery()
            myConnection.Close()
... Мне интересно, скрывает ли это поле Plant_ID, как я упорядочиваю свои столбцы? Могу ли я получить некоторую помощь с этой проблемой, пожалуйста? Я получаю сообщение об ошибке только после того, как добавил свойство Visible в столбец Plant_ID и установил для него значение True. Заранее спасибо.
 
                                                                     
                                                                    