How this field can be updated using a DropDownList inside the GridView?
===

I have the following database design:

    Employee Table: Username, Name, JobTitle, BadgeNo, IsActive, DivisionCode
    Divisions Table: SapCode, DivisionShortcut


And I have a GridView that I am using it to add, delete and update/edit the employees information. This information is employee Username, Name, BadgeNo, JobTitle, IsActive (from Employee table) and the DivisionShortcut (from Divsions table). The Divisions will be listed in DropDownList. The divisions will be listed as a DropDownList inside the GridView and it will be shown in the Edit mode. I am struggling now with updating the division of the employee through this DropDownList. I wrote the code but I got the following error:
*

> Invalid column name 'DivisionShortcut'.

* 

**ASP.NET Code:**

    <asp:GridView ID="GridView1" runat="server" AllowSorting="True" 
                AutoGenerateColumns="False" DataKeyNames="Username" 
                DataSourceID="SqlDataSource1" BorderWidth="1px" BackColor="#DEBA84" 
                 CellPadding="3" CellSpacing="2" BorderStyle="None" 
                 BorderColor="#DEBA84" OnRowEditing="GridView1_RowEditing" 
                 OnRowCancelingEdit="GridView1_RowCancelingEdit" 
                 OnRowUpdating="GridView1_RowUpdating">
                <FooterStyle ForeColor="#8C4510" 
                  BackColor="#F7DFB5"></FooterStyle>
                <PagerStyle ForeColor="#8C4510" 
                  HorizontalAlign="Center"></PagerStyle>
                <HeaderStyle ForeColor="White" Font-Bold="True" 
                  BackColor="#A55129"></HeaderStyle>
                <Columns>
                    <asp:CommandField ButtonType="Button" ShowEditButton="true" ShowCancelButton="true" />
    
                    <asp:TemplateField HeaderText="Division">
                        <ItemTemplate>
                            <%# Eval("DivisionShortcut")%>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:DropDownList ID="DivisionsList" runat="server" DataSourceID="DivisionsListDataSource"
                                                DataTextField="DivisionShortcut" DataValueField="SapCode"></asp:DropDownList>
                        </EditItemTemplate>
                    </asp:TemplateField>
    
                    <asp:BoundField DataField="Username" HeaderText="Network ID" ReadOnly="True" 
                        SortExpression="Username" />
    
                    <asp:TemplateField HeaderText="Name">
                        <ItemTemplate>
                            <%# Eval("Name")%>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox ID="txtEmployeeName" runat="server" Text='<%# Bind("Name")%>' />
                        </EditItemTemplate>
                    </asp:TemplateField>
    
                    <asp:TemplateField HeaderText="Job Title">
                        <ItemTemplate>
                            <%# Eval("JobTitle")%>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox ID="txtJobTitle" runat="server" Text='<%# Bind("JobTitle")%>' />
                        </EditItemTemplate>
                    </asp:TemplateField>
    
                    <asp:TemplateField HeaderText="Badge No.">
                        <ItemTemplate>
                            <%# Eval("BadgeNo")%>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox ID="txtBadgeNo" runat="server" Text='<%# Bind("BadgeNo")%>' />
                        </EditItemTemplate>
                    </asp:TemplateField>
    
                    <asp:TemplateField HeaderText="Is Active?">
                        <ItemTemplate>
                            <%# Eval("IsActive")%>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:CheckBox ID="isActive" runat="server" 
                                          Checked='<%# Eval("IsActive").ToString().Equals("True") %>'/>
                        </EditItemTemplate>
                    </asp:TemplateField>
                    
                    <asp:TemplateField HeaderText="Delete?">
                        <ItemTemplate>
                            <span onclick="return confirm('Are you sure to Delete the record?')">
                                <asp:LinkButton ID="lnkB" runat="Server" Text="Delete" CommandName="Delete"></asp:LinkButton>
                            </span>
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>
            <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
                ConnectionString="<%$ ConnectionStrings:UsersInfoDBConnectionString %>" 
                
                SelectCommand="SELECT     dbo.Divisions.DivisionShortcut, dbo.employee.Username, dbo.employee.Name, dbo.employee.JobTitle, dbo.employee.BadgeNo, dbo.employee.IsActive
                                FROM         dbo.Divisions INNER JOIN
                                            dbo.employee ON dbo.Divisions.SapCode = dbo.employee.DivisionCode"
                UpdateCommand="UPDATE [employee], [Divisions] SET [Name] = @Name, [JobTitle] = @JobTitle, 
                                                    [BadgeNo] = @BadgeNo, [DivisionShortcut] = @division WHERE [Username] = @Username"
                DeleteCommand="DELETE FROM [employee] WHERE [Username] = @Username">
                <UpdateParameters>
                    <asp:Parameter Name="Name" Type="String"  />
                    <asp:Parameter Name="JobTitle" Type="String" />
                    <asp:Parameter Name="BadgeNo" Type="String" />
                    <asp:Parameter Name="DivisionShortcut" Type="String" />
                    <asp:Parameter Name="Username" Type="String" />
                </UpdateParameters>
                <DeleteParameters>
                    <asp:Parameter Name="Username" Type="String" />
                </DeleteParameters>
            </asp:SqlDataSource>

I forgot to mention that there is a SqlDataSource for the DropDownList.

    <asp:SqlDataSource ID="DivisionsListDataSource" runat="server" 
                ConnectionString="<%$ ConnectionStrings:UsersInfoDBConnectionString %>" 
                SelectCommand="SELECT * FROM Divisions">
            </asp:SqlDataSource>


**Code-Behind:**

        //For editing any row in the GridView
            protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) 
            {
                GridView1.EditIndex = e.NewEditIndex;
            }
         
        //For updating the information in any row in the GridView
            protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
            {
                GridViewRow gvrow = GridView1.Rows[e.RowIndex];
         
                DropDownList DivisionsList = (DropDownList)gvrow.FindControl("DivisionsList"); 
         
                TextBox txtEmployeeName = (TextBox)gvrow.FindControl("txtEmployeeName");
                TextBox txtJobTitle = (TextBox)gvrow.FindControl("txtJobTitle");
                TextBox txtBadgeNo = (TextBox)gvrow.FindControl("txtBadgeNo");
         
                CheckBox isActive = (CheckBox)gvrow.FindControl("isActive");
         
                //For getting the ID (primary key) of that row
                string username = GridView1.DataKeys[e.RowIndex].Value.ToString();
         
                string name = txtEmployeeName.Text;
                string jobTitle = txtJobTitle.Text;
                string badgeNo = txtBadgeNo.Text;
                string division = DivisionsList.SelectedValue.ToString();
         
                UpdateEmployeeInfo(username, name, jobTitle, badgeNo, division);
            }
    private void UpdateEmployeeInfo(string username, string name, string jobTitle, string badgeNo, string division)
        {
            string connString = ConfigurationManager.ConnectionStrings["UsersInfoDBConnectionString"].ConnectionString;
            SqlConnection conn = new SqlConnection(connString);
            string update = @"UPDATE Employee SET Name = @Name, JobTitle = @JobTitle, 
                                                    BadgeNo = @BadgeNo, DivisionShortcut = @division
                                WHERE Username = @Username";
            SqlCommand cmd = new SqlCommand(update, conn);
    
            cmd.Parameters.AddWithValue("@Name", name);
            cmd.Parameters.AddWithValue("@JobTitle", jobTitle);
            cmd.Parameters.AddWithValue("@BadgeNo", badgeNo);
            cmd.Parameters.AddWithValue("@division", division);
            cmd.Parameters.AddWithValue("@Username", username);
            //cmd.Parameters.AddWithValue("@IsActive", isActive.checked);
    
            try
            {
                conn.Open();
                cmd.ExecuteNonQuery();
                conn.Close();
    
                GridView1.EditIndex = -1;
                //            SqlDataSource1.UpdateCommand = @"UPDATE Employee SET Name = @Name, JobTitle = @JobTitle, 
                //                                                BadgeNo = @BadgeNo 
                //                                                WHERE Username = @Username";
                //            SqlDataSource1.Update();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                cmd.Dispose();
                conn.Close();
                conn.Dispose();
            }
            GridView1.DataBind();
        }

So how am I going to be able to update the Division of the employee through the DropDownList?